Pagini recente » Cod sursa (job #909898) | Cod sursa (job #2726716) | Cod sursa (job #653342) | Cod sursa (job #2804717) | Cod sursa (job #398398)
Cod sursa(job #398398)
#include<stdio.h>
int main()
{ int l,t,v,i,st[2][10000],niv[2],valid[2];
FILE *f=fopen("perle.in","r");
FILE *g=fopen("perle.out","w");
fscanf(f,"%d",&t);
while (t--)
{ fscanf(f,"%d",&l);
if (l==1)
{fscanf(f,"%d",&v);
fprintf(g,"1\n");
}
else
{
valid[1]=valid[0]=1;
niv[0]=niv[1]=1;
st[0][0]=5;
st[1][0]=6;
while (l--)
{fscanf(f,"%d",&v);
for (i=0;i<2;i++)
if (valid[i])
{
if (st[i][niv[i]-1]<4)
{ if (st[i][niv[i]-1]==v)
valid[i]=1;
else
valid[i]=0;
niv[i]--;
continue;
}
if (st[i][niv[i]-1]==4)
{ niv[i]--;
continue;
}
if (st[i][niv[i]-1]==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 ((niv[i]==0) && (l))
valid[i]=1;
}
}
if (((valid[1]) && (niv[1]==0)) || ((valid[0]) && (niv[0]==0)))
fprintf(g,"1\n");
else
fprintf(g,"0\n");
}
}
fclose(f);
fclose(g);
return 0;
}