Sagheer and Crossroads CodeForces - 812A
题意:给你四叉路口,每个路口有四个交通灯,左转直走右转行人灯。给你4*4的数据0,1代表红绿灯判断,是否会有交通事故的发生(交通事故是指:行人在走的那个路口有车通过)
思路:预处理所有路口车如果可以通行,会去那个路口。判断车和行人是否会同时在哪个路口可以通过。注意:如果同一行有车通过又有人过,肯定是有事故的。

Sagheer and Crossroads CodeForces - 812A

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int main()
{
    int a[4][4]={4,3,2,1,1,4,3,2,2,1,4,3,3,2,1,4};
    int vis[5],people[5];
    memset(vis,0,sizeof(vis));
    int flag=0;
    int b,c,d;
    for(int i=0;i<4;i++)
    {
        scanf("%d%d%d%d",&b,&c,&d,&people[i+1]);
        if(b) vis[a[i][0]]=1;
        if(c) vis[a[i][1]]=1;
        if(d) vis[a[i][2]]=1;
        if((b||c||d)&&people[i+1]) flag=1;
    }
    for(int i=1;i<=4;i++)
    if(vis[i]&&people[i])
    {
        flag=1;break;
    }
    if(!flag) printf("NO\n");
    else printf("YES\n");
    return 0;
}

相关文章: