洛谷 P2077 红绿灯
程序员文章站
2022-07-16 10:59:08
...
思路:每到路灯前,通过已走路程判断路灯的颜色。遇到红灯时进行再进行运算。
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5;
int a[maxn],r[maxn],g[maxn];
int main() {
int n,m;cin>>n>>m;
for(int i=0;i<n-1;i++) cin>>a[i];
for(int i=0;i<n;i++) cin>>r[i];
for(int i=0;i<n;i++) cin>>g[i];
for(int i=0;i<n;i++){
if(i>0)m+=a[i-1];//遇灯前一段的路程
if(g[i]<m%(r[i]+g[i])) m+=r[i]+g[i]-m%(r[i]+g[i]);//遇到红灯,m+一个周期剩余的(下次遇到绿灯)时间
cout<<m<<endl;
}
return 0;
}