样例 样例输入 Copy
RGRRRGRR
样例输出 Copy
perfect
找规律
直走: 对面左转不行 右边直走、左转不行 左边直走不行
左转: 对面直走不行 左边左转不行 右边左转不行
应该可以用数组 但是一开始想到暴力就直接写了A路口的请况 然后复制粘贴 就A了
不过第一次调试的时候忘记 优先级了 好chun && 优先于 || 及时意识到 改过来了、
代码如下 结合注释食用
```c++ #include#include #include #include using namespace std; int main() { //只考虑绿灯 放行的情况 //暴力出奇迹 char A1,A2,B1,B2,C1,C2,D1,D2; scanf("%c%c%c%c%c%c%c%c",&A1,&A2,&B1,&B2,&C1,&C2,&D1,&D2); int f=1; //1代表左转 2 代表直走 if(f) { if(A2=='G'&&(D2=='G'||B2=='G'||B1=='G'||C1=='G')) { f=0; } if(f) { if(A1=='G'&&(D1=='G'||B1=='G'||C2=='G')) { f=0; } if(f) { // if(B2=='G'&&(A2=='G'||C2=='G'||C1=='G'||D1=='G')) { f=0; } if(f) { if(B1=='G'&&(A1=='G'||C1=='G'||D2=='G')) { f=0; } if(f) { // if(C2=='G'&&(B2=='G'||D2=='G'||D1=='G'||A1=='G')) { f=0; } if(f) { if(C1=='G'&&(B1=='G'||D1=='G'||A2=='G')) { f=0; } if(f) { // if(D2=='G'&&(C2=='G'||A2=='G'||A1=='G'||B1=='G')) { f=0; } if(f) { if(D1=='G'&&(C1=='G'||A1=='G'||B2=='G')) { f=0; } } } } } } } } } if(f) printf("perfect"); else printf("terrible"); return 0; }



