题解 P7190 【[COCI2007-2008#6] SEMAFORI】
题意
传送门
Luka 在开卡车,路上有很多信号灯。
对于每个信号灯,他都知道红灯和绿灯亮的时间(循环不断重复)。
Luka 开始开车时,所有交通信号灯都呈红色,并且开始循环。
Luka 每秒移动
编写一个程序,确定 Luka 需要多少时间才能到达路的尽头。
道路的起点在
思路
模拟题!!!
1.输入
2.模拟每一秒
2.(1)时间加
2.(2)判断是否碰到红绿灯
2.(3)碰到红绿灯碰到灯色
3.输出
Code
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,l,Luka=0,t=0,k=0;
cin>>n>>l;
int d[n],r[n],g[n];
for(int i=0;i<n;i++){
cin>>d[i]>>r[i]>>g[i];
}
while(Luka!=l) {
t++;
if(Luka!=d[k]){
Luka++;
}
else {
int m=t%(r[k]+g[k]);
if(m==0||m>r[k]){
Luka++;
k++;
}
}
}
cout<<t;
return 0;
}