洛谷 P2077 红绿灯

在这里插入图片描述
思路:每到路灯前,通过已走路程判断路灯的颜色。遇到红灯时进行再进行运算。

#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;
}
发布了99 篇原创文章 · 获赞 44 · 访问量 5514

猜你喜欢

转载自blog.csdn.net/weixin_44413191/article/details/103446285