Cod sursa(job #2171873)

Utilizator racheriunicolaechowchow racheriunicolae Data 15 martie 2018 13:56:29
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <fstream>

using namespace std;
    ifstream fin("perle.in");
    ofstream fout("perle.out");
int s[10005],n;
void B(int &i);
void C(int &i);

void A(int &i)
{
   // fout<<i<<"A\n";
    if(i>n)
    {
        i=-1;
        return;
    }
    i++;
}
void B (int &i)
{
    //fout<<i<<"B\n";
    if(i>n)
    {
        i=-1;
        return;
    }
   else if(s[i]==2)
    {
        i++;
        B(i);
    }
   else if(s[i]==1 and s[i+2]==3)
    {
        i=i+4;
        C(i);
    }
}
void C(int &i)
{
   // fout<<i<<"C\n";
    if(i>n)
    {
        i=-1;
        return;
    }
    if(s[i]==2){i++;}
    else if(s[i]==3)
    {
        i++;
        B(i);
        //i++;
        C(i);
    }
    else if(s[i]==1 and s[i+1]==2)
    {
        i+=2;
        A(i);
    }
}
int t,T,i,a,b,c;
int main()
{

    fin>>T;
    for(t=1;t<=T;t++)
    {
        fin>>n;
        for(i=1;i<=n;i++)
            fin>>s[i];
        a=1;
        A(a);
        b=1;
        B(b);
        c=1;
        C(c);
        //fout<<t<<" "<<a<<" "<<b<<" "<<c<<" ";
        if(a==n+1 or b==n+1 or c==n+1)
            fout<<"1\n";
            else fout<<"0\n";
    }
    return 0;
}