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 }

 

posted @ 2017-06-02 08:45  third2333  阅读(178)  评论(0编辑  收藏  举报