题目分析:
该题是根据交通规则中的红绿灯变化来统计时间的,值得注意的是红黄绿三种颜色的灯的变化是 循环的,这就造成如果是黄灯正好亮了,那么接着亮起的红灯还要接着等待。该题相比较与前面的CSP考试的第一题,风格有了很大不同,它设置为实际场景性的题目,题目阅读量变大,造成一定理解题目含义的延迟变大,所以不像言简意赅型的题目所花费的时间少。所以我预测将来考试的题目也会设置为场景性,并且阅读量也会增加。
C语言源程序:
#include<stdio.h>
int main()
{
int r,y,g;
int n,i;
int flag,time;
int sum=0;
scanf("%d%d%d",&r,&y,&g);
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%d",&flag,&time);
if(flag==0 || flag==1)
{
sum=sum+time;
}
//这地方最值得注意,是因为黄灯之后就是红灯
else if(flag==2)
{
sum=sum+time+r;
}
}
printf("%d",sum);
return 0;
}