Pagini recente » Cod sursa (job #2664116) | Cod sursa (job #600954) | Cod sursa (job #2115973) | Cod sursa (job #763427) | Cod sursa (job #163291)
Cod sursa(job #163291)
#include <cstdio>
int a[10][100],n;
void citire (){
int m,j;
freopen("perle.in","r",stdin);
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d ",&m);
for(j=1;j<=m;j++)
scanf("%d ",&a[i][j]);
}
}
int A (int x, int y);
int B (int x, int y);
int C (int x, int y);
int main ()
{
citire();
freopen("perle.out","w",stdout);
for(int i=1;i<=n;i++)
if(a[i][2]==0)
printf("1\n");
else {
if(a[i][1]==1){
if(B(i,1)==1)
printf("1\n");
else
if(C(i,1)==1)
printf("1\n");
else
printf("0\n");
}
if(a[i][1]==2)
printf("%d\n",B(i,1));
if(a[i][1]==3)
printf("%d\n",C(i,1));
}
return 0;
}
int A (int x, int y)
{
if(a[x][y]==0)
return 0;
return 1;
}
int B (int x, int y)
{
if(a[x][y]==0)
return 0;
if(a[x][y]==2)
return B(x,y+1);
if(a[x][y]==1){
if(A(x,y+1)==1 &&
a[x][y+2]==3 &&
A(x,y+3)==1 &&
C(x,y+4)==1)
return 1;
else
return 0;
}
return 0;
}
int C (int x, int y)
{
if(a[x][y]==0)
return 0;
if(a[x][y]==2)
return 1;
if(a[x][y]==3){
if(B(x,y+1)==1 &&
C(x,y+2)==1)
return 1;
else
return 0;
}
if(a[x][y+1]==2 &&
A(x,y+2)==1)
return 1;
else
return 0;
}