Pagini recente » partii | Monitorul de evaluare | patrol2 | Profil scipianus | Cod sursa (job #17086)
Cod sursa(job #17086)
#include<stdio.h>
int v[10001];
int posibil(void)
{
int n=v[0],i;
if(n==1) return 1;
if(n==2) return 0;
if((n==3) && ((v[1]!=1) || (v[2]!=2))) return 0;
else if(n==3) return 1;
if((v[1]==1) && (v[3]!=3)) return 0;
if(v[1]==2)
{
i=1;
while(v[i]==2) i++;
if(v[i]!=1 || v[i+2]!=3) return 0;
if((v[i+5]==2) && (i+5!=n)) return 0;
if((v[i+5]==1) && (v[i+6]!=2 || (n!=i+7))) return 0;
if((v[i+5]==3) && (v[i+6]!=2)) return 0;
}
if(v[1]==3)
{
i=2;
while(v[i]==2) i++;
if(v[i]!=1 || v[i+2]!=3) return 0;
}
if(v[n-2]!=1 || v[n-1]!=2) return 0;
return 1;
}
int main()
{
FILE *fin=fopen("perle.in","r"),*fout=fopen("perle.out","w");
int n,i,j;
fscanf(fin,"%d\n",&n);
for(i=1;i<=n;i++)
{
fscanf(fin,"%d",&v[0]);
for(j=1;j<=v[0];++j)
fscanf(fin,"%d",&v[j]);
fprintf(fout,"%d\n",posibil());
}
fclose(fin);
fclose(fout);
return 0;
}