Pagini recente » Cod sursa (job #742911) | Cod sursa (job #1607480) | Cod sursa (job #513368) | Cod sursa (job #445661) | Cod sursa (job #533384)
Cod sursa(job #533384)
#include<stdio.h>
FILE*f=fopen("perle.in","r");
FILE*g=fopen("perle.out","w");
int i,T,S[10010],ok,N;
void B();
void C(){
if ( i > N ){
ok = 1;
return;
}
if ( i == N ){
if ( S[i] != 2 ){
ok = 1;
return;
}
else
return;
}
else{
if ( S[i] == 3 ){
++i;
B();
++i;
C();
}
if ( S[i] == 1 && S[i+1] != 2 ){
ok = 1;
return ;
}
if ( S[i] == 1 && S[i+1] == 2 ){
i += 2;
}
}
}
void B(){
if ( i > N ){
ok = 1;
return;
}
if ( S[i] == 2 ){
++i;
B();
}
else{
if ( S[i] == 1 && S[i+2] == 3 ){
i += 4;
C();
}
}
}
void eval(){
if ( N == 1 ){
return ;
}
if ( S[i] == 2 ){
++i;
B();
return;
}
if ( S[i] == 1 ){
if ( S[i+1] == 2 && i == N - 2 ){
i = N;
return;
}
else{
if ( S[i+2] == 3 ){
i = i + 4;
C();
return;
}
}
}
if ( S[i] == 3 ){
++i;
B();
++i;
C();
return;
}
}
int main () {
fscanf(f,"%d",&T);
while ( T-- ){
fscanf(f,"%d",&N);
for ( i = 1 ; i <= N ; ++i )
fscanf(f,"%d",&S[i]);
i = 1;
ok = 0;
eval();
if ( i != N )
ok = 1;
fprintf(g,"%d\n",!ok);
}
fclose(f);
fclose(g);
return 0;
}