Pagini recente » Cod sursa (job #2915826) | Cod sursa (job #2778711) | Cod sursa (job #1155567) | Cod sursa (job #1896470) | Cod sursa (job #3004482)
#include <iostream>
#include <stdio.h>
using namespace std;
#define NMAX 10000
int poz[2];
int ok[2];
int v[2][NMAX+1];
int main(){
FILE *fin,*fout;
int t,l,i,a;
fin=fopen("perle.in","r");
fout=fopen("perle.out","w");
fscanf(fin,"%d",&t);
while(t--){
fscanf(fin,"%d",&l);
if(l==1){
fscanf(fin,"%d",&a);
fprintf(fout,"1\n");
}else{
poz[1]=poz[0]=ok[1]=ok[0]=1;
v[0][0]=5;
v[1][0]=6;
while(l--){
fscanf(fin,"%d",&a);
for(i=0;i<2;i++){
if(ok[i]){
if(v[i][poz[i]-1]<4){
poz[i]--;
ok[i]=(v[i][poz[i]]==a);
}else if(v[i][poz[i]-1]==4){
poz[i]--;
}else if(v[i][poz[i]-1]==5){
if(a==3)
ok[i]=0;
if(a==1){
poz[i]--;
v[i][poz[i]++]=6;
v[i][poz[i]++]=4;
v[i][poz[i]++]=3;
v[i][poz[i]++]=4;
}
}else{
if(a==2)
poz[i]--;
if(a==1){
poz[i]--;
v[i][poz[i]++]=4;
v[i][poz[i]++]=2;
}
if(a==3){
poz[i]--;
v[i][poz[i]++]=6;
v[i][poz[i]++]=5;
}
}
}
if(poz[i]==0 && l!=0)
ok[i]=0;
}
}
fprintf(fout,"%d\n",((!poz[0] && ok[0]) || (!poz[1] && ok[1])));
}
}
return 0;
}