Cod sursa(job #2157260)

Utilizator vladsirbu23Vlad Sirbu vladsirbu23 Data 9 martie 2018 14:07:56
Problema Perle Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.41 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
int v[10100],i,j,n,l;

void conC( int&q );
void conB( int&q );

void conC(int &q)
{
    if(q<=l)
    {
        if(v[q]==2)
            q++;
        else
        {
            if(v[q]==1&&v[q+1]==2)
                q=q+3;
            else
            {
                if(v[q]==3&&q+2<=n)
                {
                    q++;
                    conB(q);
                    q=q;
                    conC(q);
                }
            }
        }
    }
}
void conB(int &q)
{
    if(q<l)
    {
        if(v[q]==2)
        {
            q++;
            conB(q);
        }
        else
        {
            if(v[q]==1&&v[q+2]==3)
            {
                q=q+4;
                conC(q);
            }
        }
    }
}

int main()
{
    int q;
    fin>>n;
    for(i=1; i<=n; i++)
    {
        fin>>l;
        for(j=1; j<=l; j++)
            fin>>v[j];
        if(l==1)
            fout<<1<<'\n';
        else
        {
            q=1;
            conB(q);
            if(q==l+1)
                fout<<1<<'\n';
            else
            {
                q=1;
                conC(q);
                if(q==l+1)
                    fout<<1<<'\n';
                else
                    fout<<0<<'\n';
            }
        }
    }
}