POJ 2501 Average Speed --from lanshui_Yang
来源:互联网 发布:bobble是什么软件 编辑:程序博客网 时间:2024/05/18 02:15
Description
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.
Input
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.
Output
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 10000:15:0100:30:0101:00:01 5003:00:0103:00:05 140
Sample Output
00:15:01 25.00 km00:30:01 50.00 km03:00:01 200.00 km
题目大意 很简单 ,但有几点需要注意 : 第一 ,第一行 没有速度 要也要 输出 “0.00 km”; 第二 ,输入数据时 ,用 scanf或是 cin 会 RE !! 要用 gets()~ 第三 ,这一点比较奇怪 ,我写的这个程序,用G++交能AC ,但用C++交 会 RE~ 具体讲解请看代码:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<string>#include<cmath>using namespace std;int hh[100500],mm[100500],ss[100500];char s[1000];double speed[100500],lu[100500];int main(){ int i = 1,j; memset(s,'\0',sizeof(s)); while (gets(s)) { hh[i]=(s[0]-'0')*10 + (s[1]-'0'); mm[i]=(s[3]-'0')*10 + (s[4]-'0'); ss[i]=(s[6]-'0')*10 + (s[7]-'0'); lu[1] = 0; int sumt; if(s[8]==' ') { int l = strlen(s); int k; speed[i]=0; for(k=9;k<l;k++) { speed[i]*=10; speed[i]+=(s[k]-'0'); } if(i > 1) { sumt = (hh[i]-hh[i-1])*3600 + (mm[i]-mm[i-1])*60 + (ss[i]-ss[i-1]); lu[i] = sumt * speed[j]/3.6 + lu[i-1]; } j=i; i++; memset(s,'\0',sizeof(s)); continue; } else { if(i > 1) { sumt = (hh[i]-hh[i-1])*3600 + (mm[i]-mm[i-1])*60 + (ss[i]-ss[i-1]); lu[i] = sumt * speed[j]/3.6 + lu[i-1]; printf("%02d:%02d:%02d %.2f km\n",hh[i],mm[i],ss[i],lu[i]/1000); } else printf("%02d:%02d:%02d %.2f km\n",hh[i],mm[i],ss[i],lu[i]/1000); memset(s,'\0',sizeof(s)); i++; } } return 0;}
- POJ 2501 Average Speed --from lanshui_Yang
- poj 2501 Average Speed
- POJ 2501 Average Speed(水~)
- POJ Chores - from lanshui_Yang
- 2501 Average Speed
- POJ 2080 Calender -- from lanshui_Yang
- POJ 2501 Average Speed(不错的一道水题)
- POJ 2501 Average Speed 好好学习博友的文章
- POJ 2081 Recaman's Sequence -- from lanshui_Yang
- POJ 1519 Digital Roots -- from lanshui_Yang
- POJ 3749 破译密码 --from lanshui_Yang
- POJ 2389 Bull Math --from lanshui_Yang
- POJ 1300 Door Man - from lanshui_Yang
- POJ 2513 Colored Sticks - from lanshui_Yang
- POJ 1523、ZOJ 1119 SPF - from lanshui_Yang
- POJ 3177 Redundant Paths - from lanshui_Yang
- POJ 2186 Popular Cows - from lanshui_Yang
- POJ 1904 King's Quest - from lanshui_Yang
- HDU4262 Juggler
- HDU 4266 The Worm in the Apple
- null 的比较 报错
- Equations(数学,水)
- 概率与统计里的重要概念
- POJ 2501 Average Speed --from lanshui_Yang
- 调整数组顺序使奇数位于偶数前面
- Java JPA快速入门介绍
- spring+hibernate+struts2+compass整合
- ubuntu及windows上安装memcached服务
- POJ1321
- 空间四点确定球心坐标(克莱姆法则)
- RTC Driver for S3c2440
- 第一章 为开发准备好系统和iPhone(总结)