4480: 桃园南路上的红绿灯

题目描述

题目描述

33DAI 非常讨厌等红绿灯,于是他仔细观察了桃园南路与科技路交叉口的一个红绿灯的周期。

从七点半开始,这个红绿灯的每个周期会按照下面四个阶段变化:

  1. 先保持 xx 分钟的红灯
  2. 然后保持 yy 分钟的黄灯
  3. 然后保持 zz 分钟的绿灯
  4. 最后保持 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 分):没有特殊限制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值