Pagini recente » Cod sursa (job #1869220) | Cod sursa (job #1167723) | Cod sursa (job #1540117) | Istoria paginii runda/preoji_bv_2017_1_1112/clasament | Cod sursa (job #380498)
Cod sursa(job #380498)
#include<stdio.h>
#include<string.h>
int i,j,n,l,ok,k,t;
char stiva[10010],c;
char b2[3]={2,'2','b'};
char b1[6]={5,'1','a','3','a','c'};
char c3[4]={3,'3','b','c'};
char c1[4]={3,'1','2','a'};
void copy(char a[])
{
int n=int(a[0]);
for(;n>1;--n) stiva[++k]=a[n];
}
void solve()
{
k=0;l=0;c=0;t=0;
scanf("%d",&l);
if(l==1) { scanf("%d",&t);
printf("1\n");
return ;
}
if(l==3)
{ scanf("%d",&t);
c=char(t+48);
if(c!='1') { printf("0\n");
return ;
}
scanf("%d",&t);
c=char(t+48);
if(c!='2') { printf("0\n");
return ;
}
scanf("%d",&t);
printf("1\n");
return ;
}
scanf("%d",&t);
c=char(t+48);
if(c=='1') copy(b1);
else if(c=='2') copy(b2);
else if(c=='3') copy(c3);
for(int i=2;i<=l;++i)
{ scanf("%d",&t);
c=char(t+48);
if(c==stiva[k]) --k;
else if(c=='1')
{ if(stiva[k]=='a') --k;
else if(stiva[k]=='b') --k,copy(b1);
else if(stiva[k]=='c') --k,copy(c1);
else { printf("0\n");
return ;
}
}
else if(c=='2')
{ if(stiva[k]=='a'||stiva[k]=='c') --k;
else if(stiva[k]=='b') --k,copy(b2);
else { printf("0\n");
return ;
}
}
else if(c=='3')
{ if(stiva[k]=='a') --k;
else if(stiva[k]=='c') --k,copy(c3);
else { printf("0\n");
return ;
}
}
}
if(k==0)printf("1\n");
else printf("0\n");
}
int main()
{
freopen("perle.in","r",stdin);
freopen("perle.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;++i) solve();
fclose(stdin);
fclose(stdout);
return 0;
}