Cod sursa(job #2157322)

Utilizator tigeraOprea Tereza Emilia tigera Data 9 martie 2018 15:27:41
Problema Perle Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.23 kb
#include <fstream>

using namespace std;

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

int t,n,i;
short a[10010];

void perleC(int &i);
void perleB(int &i);

void perleB (int &i)
{
    if(a[i]==2 && i<n)
    {
        if(i+1<=n )
        {
            i++;
            perleB(i);
        }
    }
    else if(a[i]==1 && i+4<=n)
    {
        if(a[i+2]==3 && i+4<=n)
        {
            i+=4;
            perleC(i);
        }

    }
}

void perleC (int &i)
{
    if(a[i]==1 && a[i+1]==2 && i+2==n)
        i+=3;
    else if(a[i]==3)
    {
        i++;
        perleB(i);
        i++;
        perleC(i);
    }
    else if(a[i]==2 && i==n)
        i++;

}

int main ()
{
    fin>>t;
    for(int k=1;k<=t;k++)
    {
        fin>>n;
        for(i=1;i<=n;i++)
            fin>>a[i];
        if(n==1)
            fout<<1<<'\n';
        else
        {
            i=1;
            perleC(i);
            if(i>n)
                fout<<1<<'\n';
            else
            {
                i=1;
                perleB(i);
                if(i>n)
                    fout<<1<<'\n';
                else
                    fout<<0<<'\n';
            }
        }


    }
}