题解
相信大家已经看过题了,直接上思路!!
信号灯的顺序是绿->黄->红,和输入的顺序是相反的。
就按照题目给的例子来说,输入为3 10时,之前用时为41s,那么41-10=31,也就是该绿灯走完后,还有31s。那么这31s内,该绿灯变成了什么颜色?
31-3=28,走完黄灯。28-30= -2,可见没有走完红灯,那么此时就要等待2s。
对于其余样例,大家可以试试,说白了也就是一个简单的模拟!
注意点
1.根据该题的 评测用例规模与约定 ,数据应该为long long型。
2.代码中: temp=sum%total-arr[i][1]; ,如果不对sum取余,会超时。total为绿黄红的一个周期,对于完整的周期就不用考虑了,这样可以节省时间!只需要考虑取余后最后落到了那个时间里。
C++代码
#include <iostream>
#include <math.h>
using namespace std;
int main(int argc, char** argv) {
long long light[3]; //存放红黄绿灯时间
for(int i