等红绿灯0分求助

5.  等红绿灯
题目ID:20028必做题100分
最新提交:
Wrong Answer
0 分
历史最高:
Wrong Answer
0 分
时间限制: 1000ms
空间限制: 524288kB
题目描述
【问题描述】

小明是一个刚拿了驾照的司机,今天是他第一次开车上路。小明在公路上开车每秒中行驶距离为4。遇到红灯要停下来,等红灯变绿了才可以开车上路。现在小明从家出发,想要开车出去玩。路上一共有n个红绿灯,每个红绿灯之间距离不等,但红绿灯的时间是一样的,红灯30秒,绿灯15秒。现在请编写一个程序来帮助小明计算从家出发,通过这些红绿灯需要多少时间。

输入:

第一行为n表示有n个红绿灯。

第二行为n个红绿灯的之间的距离(第一个红绿灯为距离小明家的距离)

随后n行每行两个数,第一个数表示红绿灯当前的状态,1表示红灯,2表示绿灯。第二个数表示当前灯的状态下已经经过了多少秒

输出

输出经过了多少秒。(所有数据均为整数,无需考虑小数)
【样例输入】

3

100 200 300

1 0

2 13

1 10

【样例输出】

155

【数据要求】

n不超过10,其他数据均不超过1000

代码有没有?

#include<bits/stdc++.h>
using namespace std;
int main(){
  int n;
  cin>>n;
  int a[n+5],sum=0;
  for(int i=1;i<=n;i++){
    cin>>a[i];
    sum+=a[i]/4;
  }
  int x[n+5],y[n+5]; 
  for(int i=1;i<=n;i++){
    cin>>x[i]>>y[i];
  }
  for(int i=1;i<=n;i++){
    a[i]/=4;
    if(x[i]==1){
      if(30-y[i]<=a[i]) continue;
      else sum=sum+30-y[i]-a[i];
    }
    if(x[i]==2){
      if(15-y[i]<a[i]) sum=sum+30-(y[i]+a[i]-15);
      else continue;;
    }
  }
  cout<<sum;
  return 0;
}

@赵沐霖 这是哪里的题?

没做过

2 个赞

第21课模拟的拓展题单第5题

没找到,发截图

2 个赞

我们没有开拓展题单 :face_exhaling:

1 个赞