Pagini recente » Cod sursa (job #2398239) | Cod sursa (job #2541504) | Profil Rodik_Rody | Monitorul de evaluare | Cod sursa (job #107573)
Cod sursa(job #107573)
#include<stdio.h>
long x[20006],l,poz,i,j,k,n,m,N,a,b;
void be()
{
while (x[poz]==2) poz++;
if (x[poz]==1&&x[poz+2]==3&&poz+2<n) {poz+=4;c=1; }else
if (x[poz]==2&&poz==n) {b=1;a=0;poz=101;} else
if (x[poz]==1&&x[poz+1]==2&&poz+2==n) {b=1;a=0;poz=101;}
}
int main()
{
freopen("perle.in","r",stdin);
freopen("perle.out","w",stdout);
scanf("%ld",&N);
for (l=1;l<=N;l++)
{
scanf("%ld",&n);
for (i=1;i<=n;i++)
{
scanf("%ld",&x[i]);
x[i+n]=0;
}
if (n==1&&x[1]==1) printf("1\n"); else
if (n==1&&x[1]==2) printf("1\n"); else
if (n==1&&x[1]==3) printf("1\n"); else
if ((n==3&&x[1]==1&&x[2]==2)&&(x[3]==1||x[3]==2||x[3]==3)) printf("1\n"); else
{
poz=1;
a=1;
b=0;
while (a)
{
a=0;
c=0;
if (x[poz]==2||x[poz]==1)
{
be();
a=1;
}
if (x[poz]==3&&c)
{
poz++;
be();
a=1;
} else
if (x[poz]==2&&n==poz) {b=1;a=0;poz=101;} else
if (x[poz]==1&&x[poz+1]==2&&poz+2==n) {b=1;a=0;poz=101;}
if (poz>=n) a=0;
}
if (b) printf("1\n"); else printf("0\n");
}
}
return 0;
}