https://www.luogu.com.cn/problem/P2077
#include#include using namespace std; int g[100000], r[100000], dis[100000]; int main() { int n, m, t, mod; //路口个数 起始距离 cin >> n >> m; for (int i = 1; i <= n - 1; i++) cin >> dis[i]; //每个路口距离 for (int i = 1; i <= n; i++) cin >> r[i]; //红灯时间 for (int i = 1; i <= n; i++) cin >> g[i]; //绿灯时间 for (int i = 1; i <= n; i++) { t = g[i] + r[i]; //每个路口红绿灯时间总和 mod = m % t; //当前还剩多少时间 if (mod > g[i]) //如果大于绿灯 { m += t - mod; //总时间减去剩的时间=还离红灯多久 } cout << m << endl; m += dis[i]; } return 0; }



