思路:红绿黄依次循环,遇到红灯要等t秒,遇到黄灯要等t+30(红灯)秒,遇到绿灯不用等直接通过,没遇到灯则t表示路程时间。所以总时间等于等灯的时间加上路程的时间。
#include <iostream>
using namespace std;
int main()
{
int r,y,g,n,k,t;
int sum=0;
cin >> r >> y >> g >> n;
while(n--)
{
cin >> k >> t;
switch(k)
{
case 0: sum+=t; break;
case 1: sum+=t; break;
case 2: sum=sum+t+r; break;
case 3: break;
}
}
cout << sum << endl;
return 0;
}
一次过,一百分。fighting!