Cod sursa(job #883333)

Utilizator gbi250Gabriela Moldovan gbi250 Data 19 februarie 2013 22:05:58
Problema Perle Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
FILE *fin=fopen("perle.in", "r"), *fout=fopen("perle.out", "w");
int n, nr, i, j, sw;
int v[10002];


int B(int i);
int C(int i);


int B(int i)
{
    if(i<=nr)
    {
        if(v[i]==1&&v[i+2]==3)
            return C(i+4);
        else if(v[i]==2)
            return B(i+1);
    }
    return i;
}

int C(int i)
{
    if(i<=nr)
    {
        if(v[i]==2)
            return i;
        else if(v[i]==3)
        {
            return B(i+1);
            return C(i+3);
        }
        else if(v[i]==1&&v[i+1]==2)
            return i+2;
    }
    return i;
}

int main()
{
    fscanf(fin, "%d", &n);
    for(i=1;i<=n;i++)
    {
        fscanf(fin, "%d", &nr);

        for(j=1;j<=nr;j++)
                fscanf(fin, "%d", &v[j]);
        if(nr==1)
            fprintf(fout, "1\n");

        else
        {
            sw=(B(1)==nr)||(C(1)==nr);
            fprintf(fout, "%d\n", sw);
        }

    }
    return 0;
}