思路:遍历循环,按照题目所要求条件,分情况讨论,只是题目给的看着复杂了一点,其实考的东西不复杂。
代码如下:
#include<bits/stdc++.h>
using namespace std;
int r,y,g;
int arr[101][3];//存储经过的路段消息
int main(){
cin>>r>>y>>g;
int n;//经过的路段数
int sum=0;//所要耗费的总时间
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=2;j++){
cin>>arr[i][j];
}
}
//判断所需时间
for(int i=1;i<=n;i++){
if(arr[i][1]==0||arr[i][1]==1){//通过此段路的时间或者需要等红灯的时间
sum=sum+arr[i][2];
}
else if(arr[i][1]==2){
sum=sum+arr[i][2]+r;//如果是黄灯,还需要额外等个红灯的时间
}
else if(arr[i][1]==3){
sum=sum;//如果是绿灯,不需要等
}
}
cout<<sum;
}