Cod sursa(job #2390841)

Utilizator robertrRotaru Stefan Robert robertr Data 28 martie 2019 13:25:10
Problema Perle Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.45 kb
#include <fstream>
using namespace std;
ifstream f("perle.in");
ofstream g("perle.out");
int t,n,v[10005],i=1,j;
int a();
int b();
int c();
int a()
{
    if(i==n+1)
        return 0;
    if(v[i]==1||v[i]==2||v[i]==3)
        {i++;return 1;}
    return 0;
}
int b()
{
    if(i==n+1)
        return 0;
    if(v[i]==2)
    {
        i++;
        return b();
    }
    else if(v[i]==1)
    {
        i++;
        if(!a()||v[i]!=3)
            return 0;
        i++;
        if(!a())
            return 0;
        return c();
    }
}
int c()
{
    if(i==n+1)
        return 0;
    if(v[i]==2)
        {
            i++;
            return 1;
        }
    else if(v[i]==3)
    {
        i++;
        if(!b())
            return 0;
        return c();
    }
    else if(v[i]==1)
    {
        i++;
        if(v[i]!=2)
        {
            i++;
            return 0;
        }
        i++;
        return a();
    }
}
int main()
{
    f>>t;
    for(int q=1;q<=t;q++)
    {
        f>>n;
        for(int k=1;k<=n;k++)
            f>>v[k];
        i=1;j=a();
        if(i==n+1&&j)
            g<<1<<'\n';
        else
        {
            i=1;j=b();
            if(i==n+1&&j)
                g<<1<<'\n';
            else
            {
                i=1;j=c();
                if(i==n+1&&j)
                    g<<1<<'\n';
                else g<<0<<'\n';
            }
        }
    }
    return 0;
}