水题。
没有考虑当前有行人的时候,当前也是不能过车的。。
一个十字路口,给定方向,第i行表示第i个路口的状态
1 表示往左,2 表示往中间,3表示往右,4表示行人
一个为1说明当前是有车(or人)的。问你是否可以发生事故。
发现了数组应该是 4 3 2
1 4 3
2 1 4
3 2 1
但是一直wa。还过了二十几组,十分郁闷。。
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;
int main()
{ int m,n;
bool flag[5];
int a[5][5];
int c[5][5]={{0,0,0,0},{0,4,3,2},{0,1,4,3},{0,2,1,4},{0,3,2,1}};
memset(flag,false,sizeof(flag));
for(int i=1;i<=4;i++)
{for(int j=1;j<=4;j++)
scanf("%d",&a[i][j]);
if(a[i][4]==1)
flag[i]=true;
}
bool ff=false;
for(int i=1;i<=4&&!ff;i++)
for(int j=1;j<=3;j++){
if(a[i][j]==1&&flag[c[i][j]])
{ff=true;break;}
}
for(int i=1;i<=4&&!ff;i++)
for(int j=1;j<=3;j++){
if(a[i][j]==1&&flag[i])
{ff=true;break;}
}
if(ff)
puts("YES");
else
puts("NO");
return 0;
}