Cod sursa(job #1117494)

Utilizator calin9819Costea Calin calin9819 Data 23 februarie 2014 16:31:57
Problema Perle Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 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,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;
    while(n)
    {
        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";
        --n;
    }


    return 0;
}