本题教训,这样难想的肯定不用模拟,要学会能不模拟就不模拟。这个题用G++往上交就交不上去,就WA,非得用C++往上交才能AC,不知为何。
这个题就是判断主人公和哪个人一起到学校,还有点小技巧:提前出发的永远不可能是最优解。
以下是AC代码:
#include<stdio.h>
#include<iostream>
#include<string>
#include<string.h>
#include<vector>
#include <math.h>
using namespace std;
double speed[10010],time[10010];
double timearrive[10010];
int main()
{
int n;
while(cin>>n)
{
if(n==0) break;
for(int i=0;i<n;i++)
{
cin>>speed[i]>>time[i];
timearrive[i]=time[i]+4.5/(speed[i]/3600.0); //注意精度控制和表达式书写!
}
double mintime;
int flag=0;
for(int i=0;i<n;i++)
if(time[i]>=0)
if(flag==0)
{
mintime=timearrive[i];
flag=1;
}
else if(timearrive[i]<mintime)
mintime=timearrive[i];
printf("%.0lf\n",ceil(mintime)); //运用到了向上取整
}
return 0;
}