Contest - 多校训练(985专场)
Problem F: 985的红绿灯难题
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 206 Solved: 127
SubmitStatusWeb Board
Description
已知红、绿、黄灯各持续r、g、y秒,985发现此时灯刚刚变绿,他想知道x秒后灯是什么颜色。
Input
第一行输入一个整数t,代表有t组测试数据。
每组数据输入四个整数x,g,y,r。
注:1 <= t <= 30,1 <= x,g,r,y <= 1e9。
Output
若x秒后变成红色输出R,变成绿色输出G,反之输出Y。
Sample Input
3
5 5 2 8
7 5 2 8
16 5 2 8
Sample Output
Y
R
G
HINT
Problem F: 985的红绿灯难题
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 206 Solved: 127
SubmitStatusWeb Board
Description
已知红、绿、黄灯各持续r、g、y秒,985发现此时灯刚刚变绿,他想知道x秒后灯是什么颜色。
Input
第一行输入一个整数t,代表有t组测试数据。
每组数据输入四个整数x,g,y,r。
注:1 <= t <= 30,1 <= x,g,r,y <= 1e9。
Output
若x秒后变成红色输出R,变成绿色输出G,反之输出Y。
Sample Input
3
5 5 2 8
7 5 2 8
16 5 2 8
Sample Output
Y
R
G
HINT
红绿灯顺序:绿->黄->红->绿
#include<cstdio>
int main()
{
int t;
long long x,g,y,r,sum;
scanf("%d",&t);
while(t--)
{
scanf("%lld %lld %lld %lld",&x,&g,&y,&r);
sum=g+y+r;
if(x%sum==0){
printf("R\n");
continue;
}
else {
long long yu=x%sum;
if(yu<g){
printf("G\n");
}else if(yu>=g&&yu<g+y){
printf("Y\n");
}else if(yu>=g+y){
printf("R\n");
}
}
}
return 0;
}