Ride to Office(信息学奥赛一本通-T1227)
生活随笔
收集整理的這篇文章主要介紹了
Ride to Office(信息学奥赛一本通-T1227)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目描述】
起點與終點相隔4500米。現Charley 需要從起點騎車到終點。但是,他有個習慣,沿途需要有人陪伴,即以相同的速度, 與另外一個人一起騎。而當他遇到以更快的速度騎車的人時,他會以相應的速度跟上這個更快的人。先給定所有與Charley 同路的人各自的速度與出發時間,問Charley 以這種方式跟人,騎完4500米需要多少時間。得出的結果若是小數,則向上取整。
【輸入】
輸入若干組數據,每組數據第一行n(1≤n≤10000),n為0,表示輸入結束,接著輸入n行數據,每行2個數據,表示速度v和出發時間t,如果t<0,表示陪伴人提早出發了。
【輸出】
輸出對應若干行數據,每行輸出1個數,表示最快到達的時間。
【輸入樣例】
4
20 0
25 -155
27 190
30 240
2
21 0
22 34
0
【輸出樣例】
780
771
【源程序】
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<algorithm> #define INF 999999999 #define N 10001 using namespace std; struct node{int v;int start;int endd; }a[N]; int main() {int n;int t;while(cin>>n&&n){for(int i=1;i<=n;i++){cin>>a[i].v>>a[i].start;t=16200/a[i].v;if(16200.0/a[i].v>t)t++;a[i].endd=a[i].start+t;}int min=INF;for(int i=1;i<=n;i++)if(a[i].start==0&&a[i].endd<min)min=a[i].endd;for(int i=1;i<=n;i++)if(a[i].start>0&&a[i].endd<min)min=a[i].endd;cout<<min<<endl;}return 0; }?
總結
以上是生活随笔為你收集整理的Ride to Office(信息学奥赛一本通-T1227)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 混合背包(信息学奥数一本通-T1270)
- 下一篇: 小兔的棋盘(HDU-2067)