Cod sursa(job #1011346)

Utilizator sebinechitasebi nechita sebinechita Data 16 octombrie 2013 19:16:07
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.26 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("perle.in");
ofstream fout("perle.out");


int ind, n, i, ki;


int b();
int c();

int au[10010];

int eval()
{
    if(n==1)
        return 1;
    if(au[ind]==2)
        return b();
    if(au[ind]==1 && au[ind+2]==3 && n>3)
        return b();
    return c();
}

int b()
{
    if(au[ind]==2)
    {
        ind++;
        if(ind<=n)
            return b();
    }
    if(au[ind]==1)
    {
        ind+=2;
        if(au[ind]==3)
        {
            ind+=2;
            if(ind<=n)
                return c();
        }
    }
    return 0;
}

int c()
{
    if(au[ind]==2 && ind<=n)
    {
        ind++;
        return 1;
    }
    if(au[ind]==3)
    {
        ind++;
        if(b() && ind<=n)
            return c();
    }
    if(au[ind]==1)
    {
        ind++;
        if(au[ind]==2)
        {
            ind+=2;
            if(ind<=n+1)
                return 1;
        }
    }
    return 0;
}


int main()
{
    int t;
    fin>>t;

    for(ki=1;ki<=t;ki++)
    {
        fin>>n;
        for(i=1;i<=n;i++)
        {
            fin>>au[i];
        }
        ind=1;
        fout<<eval()<<"\n";
    }

    return 0;
}