24h購物| | PChome| 登入
2012-06-18 11:47:43| 人氣2,451| 回應0 | 上一篇 | 下一篇

[UVA] 10281 - Average Speed

推薦 0 收藏 0 轉貼0 訂閱站台

Problem A: Average Speed

You have bought a car in order to drive from Waterloo to a big city. The odometer on their car is broken, so you cannot measure distance. But the speedometer and cruise control both work, so the car can maintain a constant speed which can be adjusted from time to time in response to speed limits, traffic jams, and border queues. You have a stopwatch and note the elapsed time every time the speed changes. From time to time you wonder, "how far have I come?". To solve this problem you must write a program to run on your laptop computer in the passenger seat.

Standard input contains several lines of input: Each speed change is indicated by a line specifying the elapsed time since the beginning of the trip (hh:mm:ss), followed by the new speed in km/h. Each query is indicated by a line containing the elapsed time. At the outset of the trip the car is stationary. Elapsed times are given in non-decreasing order and there is at most one speed change at any given time.

For each query in standard input, you should print a line giving the time and the distance travelled, in the format below.

Sample Input

00:00:01 100
00:15:01
00:30:01
01:00:01 50
03:00:01
03:00:05 140

Output for Sample Output

00:15:01 25.00 km
00:30:01 50.00 km
03:00:01 200.00 km


初始化注意, 從時間從 0 開始, 速度是靜止

#include <stdio.h>

int main() {
char str[1000];
int hh, mm, ss;
double ans = 0, ltime = 0, rtime, v = 0;
while(gets(str)) {
sscanf(str, "%d:%d:%d", &hh, &mm, &ss);
rtime = hh + mm/60.0 + ss/3600.0;
if(str[8] == '\0') {
ans += (rtime-ltime)*v;
printf("%s %.2lf km\n", str, ans);
} else {
ans += (rtime-ltime)*v;
sscanf(str+8, "%lf", &v);
}
ltime = rtime;
}
return 0;
}
 

台長: Morris
人氣(2,451) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 不分類 | 個人分類: UVA |
此分類下一篇:[UVA][費式延伸 矩陣 D&C] 10689 - Yet another Number Sequence
此分類上一篇:[UVA] 11340 - Newspaper

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文