POJ 2565 - Average is not Fast Enough!
http://poj.org/problem?id=2565
概要
各チーム毎に,n 人のタイムが与えられる. 全体の距離が d のときの,距離当たりの時間を答える.
ただし,走者が disqualified のときはタイムが -:--:-- で与えられ,1人でも disqualified であればそのチームの答えは - とする.
制約
- 1 <= n <= 20
- 0.0 < d < 200.0
解法
やるだけ.
poj/2565.cc1 #include <cstdio> 2 #include <cmath> 3 using namespace std; 4 5 int main() 6 { 7 int n; 8 double d; 9 scanf("%d %lf", &n, &d); 10 11 int t; 12 while (scanf("%d", &t) != EOF) { 13 bool disqual = false; 14 int ttl = 0; 15 for (int i = 0; i < n; i++) { 16 char hmmss[20]; 17 scanf("%s", hmmss); 18 if (hmmss[0] == '-') { 19 disqual = true; 20 } else { 21 int h = hmmss[0]-'0'; 22 int m = 10*(hmmss[2]-'0')+(hmmss[3]-'0'); 23 int s = 10*(hmmss[5]-'0')+(hmmss[6]-'0'); 24 ttl += 3600*h + 60*m + s; 25 } 26 } 27 printf("%3d: ", t); 28 if (disqual) { 29 puts("-"); 30 } else { 31 int s = lround(ttl / d); 32 printf("%d:%02d min/km\n", s/60, s%60); 33 } 34 } 35 return 0; 36 }