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.
Input
Output
Sample Input
00:00:01 100 00:15:01 00:30:01 01:00:01 50 03:00:01 03:00:05 140
Sample Output
00:15:01 25.00 km 00:30:01 50.00 km 03:00:01 200.00 km
HINT
#include<bits/stdc++.h>
using namespace std;
int main()
{
int h,m,s;
double sum=0,nowv=0,nowtime=0,time=0;
while(scanf("%d:%d:%d",&h,&m,&s)!=EOF)
{
char c;
c=getchar();
time=h*3600+m*60+s;
if(c==' ') //通过判断是否存在' '来判断速度是否变化 并输入
{
int v;
scanf("%d",&v);
sum+=(time-nowtime)/3600*nowv; //先换成小时再乘以速度/每小时
nowtime=time;
nowv=v;
}
else
{
printf("%02d:%02d:%02d",h,m,s);
printf(" %.2f km\n",sum+(time-nowtime)/3600*nowv);
}
}
return 0;
}