L1-3 帮助色盲
分数 10
全屏浏览
切换布局
作者 陈越
单位 浙江大学
在古老的红绿灯面前,红绿色盲患者无法分辨当前亮起的灯是红色还是绿色,有些聪明人通过路口的策略是这样的:当红灯或绿灯亮起时,灯的颜色无法判断,但前方两米内有同向行走的人,就跟着前面那人行动,人家走就跟着走,人家停就跟着停;如果当前是黄灯,那么很快就要变成红灯了,于是应该停下来。麻烦的是,当灯的颜色无法判断时,前方两米内没有人……
本题就请你写一个程序,通过产生不同的提示音来帮助红绿色盲患者判断当前交通灯的颜色;但当患者可以自行判断的时候(例如黄灯或者前方两米内有人),就不做多余的打扰。具体要求的功能为:当前交通灯为红灯或绿灯时,检测其前方两米内是否有同向行走的人 —— 如果有,则患者自己可以判断,程序就不做提示;如果没有,则根据灯的颜色给出不同的提示音。黄灯也不需要给出提示。
输入格式:
输入在一行中给出两个数字 A 和 B,其间以空格分隔。其中 A 是当前交通灯的颜色,取值为 0 表示红灯、1 表示绿灯、2 表示黄灯;B 是前方行人的状态,取值为 0 表示前方两米内没有同向行走的人、1 表示有。
输出格式:
根据输入的状态在第一行中输出提示音:dudu
表示前方为绿灯,可以继续前进;biii
表示前方为红灯,应该止步;-
表示不做提示。在第二行输出患者应该执行的动作:move
表示继续前进、stop
表示止步。
输入样例 1:
0 0
输出样例 1:
biii
stop
输入样例 2:
1 1
输出样例 2:
-
move
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
#include<iostream>
using namespace std;
int main()
{
int a,b;//a灯颜色,b行人
cin>>a>>b;
if(b==1){//有人
cout<<"-"<<endl;
if(a==0||a==2)//红灯或者黄灯
cout<<"stop"<<endl;
else//绿灯
cout<<"move"<<endl;
}
else{//没人
if(a==0)//红灯
cout<<"biii"<<endl<<"stop"<<endl;
else if(a==1)//绿灯
cout<<"dudu"<<endl<<"move"<<endl;
else//黄灯
cout<<"-"<<endl<<"stop"<<endl;
}
}