Pagini recente » simulare_oji_09 | Cod sursa (job #1106498) | Cod sursa (job #315735) | Cod sursa (job #1936053) | Cod sursa (job #1794136)
#include <stdio.h>
#include <stdlib.h>
int v[10001];
int a,l;
int prima(){
//printf("%d %d\n",v[a],a);
if(a>=l)
return 0;
else
if(v[a]==2){
a++;
//printf("ccc");
if(prima()==0)
return 0;
}else if (v[a]==1){
a+=2;
//printf("%d",v[a]);
if(v[a]!=3)
return 0;
a+=2;
printf("%d %d",v[a],a);
if(doua()==0)
return 0;
}else return 0;
return 1;
}
int doua(){
if(a>=l)
return 0;
else
if(v[a]==2 ){
a++;
printf(" %d ",a);
return 1;
}
else if(v[a]==1 && v[a+1]==2){
a+=3;
return 1;
}else if(v[a]==3){
a++;
if(prima()==0)
return 0;
printf("%d %d ",v[a],a);
if(doua()==0)
return 0;
}
return 1;
}
int main()
{ FILE *fin,*fout;
int n,piv,j,i,r,d;
fin=fopen("perle.in","r");
fout=fopen("perle.out","w");
fscanf(fin,"%d",&n);
for(i=0;i<n;i++){
fscanf(fin,"%d",&l);
if(l>1){
piv=1;
for(j=0;j<l;j++){
fscanf(fin,"%d",&v[j]);
if(v[j]>3 || v[j]<1)
piv=0;
}
//printf("%d",n);
if (piv==1){
a=0;
r=prima();
//printf("%d ",r);
if(r==1){
if(a<l)
r=0;
}
a=0;
d=doua();
//printf("%d",d);
if(d==1){
if(a<l)
d=0;
}
if(d==1 || r==1)
fprintf(fout,"1\n");
else
fprintf(fout,"0\n");
}else fprintf(fout,"0\n");
}else {
fscanf(fin,"%d",&v[0]);
if(v[0]==1 || v[0]==2 || v[0]==3 )
fprintf(fout,"1\n");
else
fprintf(fout,"0\n");
}
}
fclose(fin);
fclose(fout);
return 0;
}