Pagini recente » Cod sursa (job #1301745) | Cod sursa (job #592674) | Cod sursa (job #570432) | Cod sursa (job #843589) | Cod sursa (job #384436)
Cod sursa(job #384436)
#include <stdio.h>
FILE*f=fopen("perle.in","r");
FILE*g=fopen("perle.out","w");
int sol;
int v[10001],n,L,i,j;
int perlab(int p);
int perlac(int p){
if(v[p]==2)
return p+1;
if(v[p]==1&&v[p+1]==2&&n==p+2){//aici n>=p+2
return p+3;
}
if(v[p]!=3)
return 0;
p=perlab(p+1);
if(p>n)return 0;
return perlac(p);
}
int perlab(int p){
for(;v[p]==2;p++)
if(p==n)
return 0;
if(v[p]!=1||v[p+2]!=3||n<p+4)
return 0;
return perlac(p+4);
}
int main(){
fscanf(f,"%d",&L);
for(i=1;i<=L;i++){
fscanf(f,"%d",&n);
for(j=1;j<=n;j++)
fscanf(f,"%d",&v[j]);
sol=0;
if(n==1)
sol=2;
else{
if(v[1]==1){
if(n==3&&v[2]==2)
sol=4;
if(n>=5&&v[3]==3)
sol=perlac(5);
}
if(v[1]==2){
sol=perlab(2);
}
if(v[1]==3){
sol=perlac(1);
}
}
if(sol==n+1)
sol=1;
else sol=0;
fprintf(g,"%d\n",sol);
for(j=1;j<=n;j++){
v[j]=0;
}
}
fclose(f);
fclose(g);
return 0;
}