Pagini recente » Cod sursa (job #576953) | Cod sursa (job #2403369) | Cod sursa (job #11) | Cod sursa (job #1427796) | Cod sursa (job #221686)
Cod sursa(job #221686)
#include<stdio.h>
#define M 10003
int v[M],n,j=1,l;
FILE *f=fopen("perle.in","r");
FILE *g=fopen("perle.out","w");
int perle_b(int j)
{
if(v[j]==2 && l>=6) if(j+1<l) {j++;
perle_b(j);}
else if(v[j]==1 && j+2<l && v[j+2]==3 && l>=5) if(j+4<l) {j=j+4;
perle_c(j);}
}
int perle_c(int j)
{int k=0,m;
if(v[j]==2) j++;
else if(v[j]==1 &&v[j+1]==2 && l>=3 && j+2<l) j=j+3;
else if(v[j]==3 && l>=7 &&j+1<l) {j=j+1;
k++;
perle_b(j);}
else if(k>=1) for(m=1;m<=k;m++)
perle_c(j);
}
int main()
{int a,b,i,m;
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
{fscanf(f,"%d",&l);
if(l==1) {fprintf(g,"1\n");
fscanf(f,"%d",&a);}
else if(l==2) {fprintf(g,"0\n");
fscanf(f,"%d%d",&a,&b);}
else {for(m=1;m<=l;m++)
fscanf(f,"%d",&v[m]);
if(v[1]==2) perle_b(j);
else if((v[1]==3)||(v[1]==1)) perle_c(j);
if(j==l) fprintf(g,"1\n");
else fprintf(g,"0\n");
for(m=1;m<=l;m++)
v[m]=0;
}
}
fclose(f);
fclose(g);
return 0;
}