Buses Between Cities
题意简述
输入从 A 市出发的公交车的发车间隔时间
题目分析
把 Simon 的出发时间转换为分钟,方便计算。早上
判断向 Simon 驶来的公交车中第一辆的出发时间是否为
然后计算他遇到的最后一辆公交车是第几辆,向他驶来的最后一辆公交车是第
最后计算 Simon 在路上遇到的公交车的数量。
时间复杂度为
代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,ta,b,tb,h,m;
cin>>a>>ta>>b>>tb;
scanf("%d:%d",&h,&m);
int c=h*60+m;//把时间转换为分钟
int d;//途中向 Simon 驶来的公交车中第一辆是第几辆
if(c-tb<300){//如果途中向他驶来的公交车中第一辆出发时间是早上 5:00
d=1;
}
else{
d=(c-tb-300)/b+2;//计算他遇到的第一辆公交车是第几辆
}
int e=ceil(1.0*(min(min(c+ta,1440),1439+tb)-300)/b);//计算途中向他驶来的公交车中最后一辆是第几辆
int ans=e-d+1;//计算 Simon 在路上遇到的公交车的数量
cout<<ans;
}