Cod sursa(job #901612)

Utilizator simpleBereczki Cristian simple Data 1 martie 2013 10:57:59
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<stdio.h>
FILE *f=fopen("perle.in","r"),*g=fopen("perle.out","w");
int n,t,s[10002];
int B(int c);
int C(int c);
int C(int c)
{
    if(c>n)
    {
        return 0;
    }
    if(s[c]==3)
    {
        return C(B(c+1));
    }
    if(s[c]==2)
    {
        return c+1;
    }
    if(s[c]==1 && s[c+1]==2)
    {
        return c+3;
    }
    return 0;
}
int B(int c)
{
    if(c>n)
    {
        return 0;
    }
    if(s[c]==1 && s[c+2]==3)
    {
        return C(c+4);
    }
    if(s[c]==2)
    {
        return B(c+1);
    }
return 0;
}

int main()
{int i,j;
fscanf(f,"%d",&t);
for(i=1;i<=t;i++)
{
    fscanf(f,"%d",&n);
    for(j=1;j<=n;j++)
    {
        fscanf(f,"%d",&s[j]);
    }
    if(n==1 || B(1)==n+1 || C(1)==n+1)
    {
        fprintf(g,"1\n");
    }
    else
    {
        fprintf(g,"0\n");
    }
}
fclose(f);
fclose(g);
return 0;
}