Cod sursa(job #1492249)

Utilizator calin9819Costea Calin calin9819 Data 27 septembrie 2015 14:15:33
Problema Perle Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <fstream>
#include <string>
#include <cstring>
#define max(a, b), (a>b)? a:b

using namespace std ;

ifstream f("perle.in") ;
ofstream g("perle.out") ;

int n,i,j,s[10005],a;
int C();

int B()
{

    if(i>n) return 0;
    if(s[i]==2)
    {
        ++i;
        return B();
    }
    if(s[i]==1 && s[i+2]==3)
    {
        i=i+4;
        return C();
    }
    return 0;
}


int C()
{
    if(i>a) return 0 ;
    if(s[i]==2)
    {
        ++i;
        return 1;
    }
    if(s[i]==3)
    {
        ++i;
        if(B()) return C();
    }
    if(s[i]==1 && s[i+1]==2 && i+2<=a)
    {
        i=i+3;
        return 1;
    }
    return 0;
}



int main()
{
    f>>n;
    for (j=1; j<=n; j++)
    {
        f>>a;
        for(i=1; i<=a; i++)
            f>>s[i];
            i=1;
        if(a==1)
        {
            g<<1<<"\n";
        }
        else if(s[1]==2 || (s[1]==1 && s[3]==3 && a>=5))
                                                         g<<B()<<"\n";
        else g<<C()<<"\n";
    }


    return 0;
}