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