【CSP CCF记录】201812-1第15次认证 小明上学
题目
样例1输入
30 3 30
8
0 10
1 5
0 11
2 2
0 6
0 3
3 10
0 3
样例1输出
70
代码
没什么技术含量的一道水题,解题关键是对于k=0,1,2,3四种情况的讨论,通过以下代码注释可以清晰理解。
类似题目还需要注意数据范围,在本题中int型够用。
#include<bits/stdc++.h>
using namespace std;
int r,y,g,n;
int main()
{
cin>>r>>y>>g;
cin>>n;
int ptime=0;//总用时
for(int i=0;i<n;i++)
{
int k,t;
cin>>k>>t;
if(k==0)//直通
{
ptime+=t;
//cout<<"ptime:"<<ptime<<endl;
}
else if(k==1)//通过红灯
{
ptime+=t;
//cout<<"ptime:"<<ptime<<endl;
}
else if(k==2)//通过黄灯
{
ptime+=(t+r);//等完黄灯后还要再等红灯
//cout<<"ptime:"<<ptime<<endl;
}
else//通过绿灯
{
ptime+=0;
//cout<<"ptime:"<<ptime<<endl;
}
}
cout<<ptime;
return 0;
}
运行
样例:
测试结果