桃园南路上的红绿灯c++

题目描述

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

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

  1. 先保持 x 分钟的红灯
  2. 然后保持 y 分钟的黄灯
  3. 然后保持 z 分钟的绿灯
  4. 最后保持 y 分钟的黄灯

每次第 4 步的黄灯结束后,又会按照 1~4 的顺序变化。

XXX 想知道第 q 分钟红绿灯的颜色

输入

一行空格隔开的四个整数:x,y,z,q

输出

输出一个字符串,如果第 q 分钟内红绿灯是红色就输出red,是黄色就输出yellow,是绿色就输出green。

样例输入

5 1 4 3 

样例输出

red

提示

样例解释

数据规模与约定

对于 100% 的数据 0≤x,y,z≤10,1≤q≤100 且 x,y,z 中至少有一个数大于 0。

  • 子任务 1(30 分):y=0 且 z=0。这是一个只有红灯的世界。
  • 子任务 2(30 分):y=0,这是一个没有黄灯的世界。
  • 子任务 3(40 分):没有特殊限制。

代码如下:

#include<bits/stdc++.h>
using namespace std;
int main(){
    long long x,y,z,q,x1,y1,z1,z2;
    cin>>x>>y>>z>>q;
    x1=x;
    y1=x+y;
    z1=x+y+z;
    z2=x+y+z+y;
    while(1){
    	if(q>=1&&q<=x1){//在红灯时间范围内
    		cout<<"red";
    		return 0;
		}
		if(q>x1&&q<=y1){//在黄灯时间范围内
    		cout<<"yellow";
    		return 0;
		}
		if(q>y1&&q<=z1){//在绿灯时间范围内
    		cout<<"green";
    		return 0;
		}
		if(q>z1&&q<=z2){//在黄灯时间范围内
			cout<<"yellow";
			return 0;
		}
		q=q-(x+y+z+y);//q不断减去一个周期
	}
    return 0;
}

相关推荐

  1. 树(数组)★★★ c++版本 10分

    2024-07-15 16:58:05       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 16:58:05       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 16:58:05       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 16:58:05       58 阅读
  4. Python语言-面向对象

    2024-07-15 16:58:05       69 阅读

热门阅读

  1. 【同步不是同时,是不同时】

    2024-07-15 16:58:05       20 阅读
  2. Python实现压缩包解压

    2024-07-15 16:58:05       17 阅读
  3. Vue3单文件jsx输出多组件示例遇到的坑

    2024-07-15 16:58:05       23 阅读
  4. Leetcode(经典题)day3-双指针

    2024-07-15 16:58:05       20 阅读
  5. 跟ChatGPT学习go语言--如何将两个list 拼接

    2024-07-15 16:58:05       19 阅读
  6. Linux

    2024-07-15 16:58:05       23 阅读
  7. Unsloth使用简介

    2024-07-15 16:58:05       19 阅读