题目描述
题目描述
33DAI 非常讨厌等红绿灯,于是他仔细观察了桃园南路与科技路交叉口的一个红绿灯的周期。
从七点半开始,这个红绿灯的每个周期会按照下面四个阶段变化:
- 先保持 xx 分钟的红灯
- 然后保持 yy 分钟的黄灯
- 然后保持 zz 分钟的绿灯
- 最后保持 yy 分钟的黄灯
每次第 4 步的黄灯结束后,又会按照 1~4 的顺序变化。
33DAI 想知道第 qq 分钟红绿灯的颜色
输入格式
一行空格隔开的四个整数:x,y,z,qx,y,z,q
输出格式
输出一个字符串,如果第 qq 分钟内红绿灯是红色就输出 red
,是黄色就输出 yellow
,是绿色就输出 green
。
输入1:
5 1 4 3
输出1:
red
输入2:
5 1 4 6
输出2:
yellow
输入3:
5 1 4 7
输出3:
green
输入4:
5 1 4 11
输出4:
yellow
输入5:
5 1 4 15
输出5:
red
样例解释
#include <bits/stdc++.h>
using namespace std;
int n, i;
int main() {
int x,y,z,q;
cin>>x>>y>>z>>q;
int cnt1=0,cnt2=0;
q=q%(x+y+z+y);
if(q==0){
if(y!=0)cout<<"yellow";
else if(z!=0)cout<<"green";
else cout<<"red";
return 0;
}
for(int i=1;;i++){
if(i%4==0)cnt1+=y;
else if(i%3==0)cnt1+=z;
else if(i%2==0)cnt1+=y;
else cnt1+=x;
if(cnt1>=q)
{
cnt2=i;
break;
}
}
if(cnt2%4==0)cout<<"yellow";
else if(cnt2%3==0)cout<<"green";
else if(cnt2%2==0)cout<<"yellow";
else cout<<"red";
return 0;
}
数据规模与约定
对于 100%100% 的数据 0≤x,y,z≤100≤x,y,z≤10,1≤q≤1001≤q≤100 且 x,y,zx,y,z 中至少有一个数大于 00。
- 子任务 1(30 分):y=0y=0 且 z=0z=0。这是一个只有红灯的世界。
- 子任务 2(30 分):y=0y=0,这是一个没有黄灯的世界。
- 子任务 3(40 分):没有特殊限制。