Codeforces Round #417 (Div. 2) A. Sagheer and Crossroads 模拟 枚举
Codeforces Round #417 (Div. 2)
A. Sagheer and Crossroads
模拟 枚举
题意 一个红绿灯 按逆时针方向一次给出各个路口的左转,直行,右转,以及行人车道
让你判断,汽车是否有可能撞到行人
注意 当前车道的左转有可能撞到别的车道的行人的
题解 一大堆特判
1 #include <cstdio> 2 #include <cmath> 3 #include <cstdlib> 4 #include <cstring> 5 #include <algorithm> 6 #include <string> 7 #include <iomanip> 8 #include <iostream> 9 using namespace std ; 10 11 int a[5][5] ; 12 13 inline void die() 14 { 15 printf("YES\n") ; 16 exit(0) ; 17 } 18 19 int main() 20 { 21 for(int i=1;i<=4;i++) 22 for(int j=1;j<=4;j++) 23 scanf("%d",&a[ i ][ j ]) ; 24 if(a[ 1 ][ 4 ]) 25 { 26 if(a[ 1 ][ 1 ]||a[ 1 ][ 2 ]||a[ 1 ][ 3 ]) die() ; 27 if(a[ 2 ][ 1 ]) die() ; 28 if(a[ 3 ][ 2 ]) die() ; 29 if(a[ 4 ][ 3 ]) die() ; 30 } 31 if(a[ 2 ][ 4 ]) 32 { 33 if(a[ 2 ][ 1 ]||a[ 2 ][ 2 ]||a[ 2 ][ 3 ]) die() ; 34 if(a[ 3 ][ 1 ]) die() ; 35 if(a[ 4 ][ 2 ]) die() ; 36 if(a[ 1 ][ 3 ]) die() ; 37 } 38 if(a[ 3 ][ 4 ]) 39 { 40 if(a[ 3 ][ 1 ]||a[ 3 ][ 2 ]||a[ 3 ][ 3 ]) die() ; 41 if(a[ 4 ][ 1 ]) die() ; 42 if(a[ 1 ][ 2 ]) die() ; 43 if(a[ 2 ][ 3 ]) die() ; 44 } 45 if(a[ 4 ][ 4 ]) 46 { 47 if(a[ 4 ][ 1 ]||a[ 4 ][ 2 ]||a[ 4 ][ 3 ]) die() ; 48 if(a[ 4 ][ 2 ]) die() ; 49 if(a[ 1 ][ 1 ]) die() ; 50 if(a[ 2 ][ 2 ]) die() ; 51 if(a[ 3 ][ 3 ]) die() ; 52 } 53 printf("NO\n") ; 54 return 0 ; 55 }