只有一点要注意,黄灯过了是红灯,要另外等一个红灯的时间
虽然题目给出的灯的时间顺序是红、黄、绿,但实际上循环的顺序是红、绿、黄,搞清这个这题就解决了
AC代码:
#include <stdio.h>
#include <string.h>
int main(){
int r,y,g;
int n;
int signal,tm;
int linshi = 0;
scanf("%d %d %d",&r,&y,&g);
scanf("%d",&n);
for(int i = 0;i <n;i++){
scanf("%d %d",&signal,&tm);
if(signal == 0){
linshi = linshi + tm;
}
else if(signal == 1){ //红灯,等待
linshi = linshi + tm;
}
else if(signal == 2){ //黄灯,多等一个红灯
linshi = linshi + tm + r;
}
else{
linshi = linshi + 0;
}
}
printf("%d",linshi);
}
/*
30 3 30
8
0 10
1 5
0 11
2 2
0 6
0 3
3 10
0 3
*/