Pagini recente » Cod sursa (job #124800) | Cod sursa (job #2158290) | Cod sursa (job #2988246) | Cod sursa (job #897032) | Cod sursa (job #3739)
Cod sursa(job #3739)
#include<stdio.h>
FILE *f=fopen("perle.in","r");
FILE *g=fopen("perle.out","w");
int main()
{ int t,l,valid[2],st[2][50],niv[2],i,v;
fscanf(f,"%d",&t);
while (t--)
{
fscanf(f,"%d",&l);
if (l==1)
{fscanf(f,"%d",&v);
fprintf(g,"1\n");
}
else
{ st[0][1]=5;
st[1][1]=6;
niv[0]=1;
niv[1]=1;
valid[0]=1;
valid[1]=1;
while (l--)
{ fscanf(f,"%d",&v);
for (i=0;i<2;i++)
if (valid[i])
{
if (st[i][niv[i]-1]<4)
{ valid[i]=(st[i][--niv[i]]==v);
continue;
}
if (st[i][niv[i]-1]==4)
{niv[i]--;
continue;
}
if (st[i][niv[i]--]==5)
{ if (v==3) valid[i]=0;
if (v==1)
{ niv[i]--;
st[i][niv[i]++]=6;
st[i][niv[i]++]=4;
st[i][niv[i]++]=3;
st[i][niv[i]++]=4;
}
continue;
}
}
if (v==2)
niv[i]--;
if (v==3)
{niv[i]--;
st[i][niv[i]++]=6;
st[i][niv[i]++]=5;
}
if (v==1)
{niv[i]--;
st[i][niv[i]++]=4;
st[i][niv[i]++]=2;
}
if (l && (niv[i]==0))
valid[i]=0;
}
}
if (((valid[1]) && (!niv[1])) && ((valid[0]) && (!niv[0])))
fprintf(g,"1\n");
else
fprintf(g,"0\n");
}
fclose(f);
fclose(g);
return 0;
}