Cod sursa(job #892052)

Utilizator andreii1Ilie Andrei andreii1 Data 25 februarie 2013 21:58:08
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <cstdio>

using namespace std;

int b(int);
int c(int);
int m,a[10010],n;
int b(int i)
{
    if(i<=m)
    {
        if(a[i]==2)return b(i+1);else
        if(a[i]==1&&a[i+2]==3)return c(i+4);
    }
    return -1;
}

int c(int i)
{
    if(i<=m)
    {
        if(a[i]==2)return i;
        else
        if(a[i]==3)return c(b(i+1)+1);
        else
        if(a[i]==1&&a[i+1]==2)return i+2;
    }
    return -1;
}

int main()
{
    int i,j;
    FILE *f=fopen("perle.in","r");
    FILE *g=fopen("perle.out","w");
    fscanf(f,"%d",&n);
    for(j=1;j<=n;j++)
    {
        fscanf(f,"%d",&m);
        for(i=1;i<=m;i++)fscanf(f,"%d",&a[i]);
        if(m==1||b(1)==m||c(1)==m) fprintf(g,"1\n");else fprintf(g,"0\n");
    }
    fclose(f);
    fclose(g);
    return 0;
}