Cod sursa(job #940683)

Utilizator varga13VarGaz13 varga13 Data 16 aprilie 2013 22:00:20
Problema Perle Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.49 kb
#include <fstream>
using namespace std;

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

bool B(int * p),C(int * p);
int m,n,aux[10005];

int main()
{
    f>>n;
    for(int i=0;i<n;i++)
    {
        f>>m;
        if(m==1)
        {
            f>>*aux;
            g<<1;
           // g<<'M';
        }

        else
            {
                for(int j=0;j<m;j++)
                    f>>aux[j];

                if(*aux==2)
                {
                    if(B(aux+1))
                        g<<1;
                        //g<<"BB";
                    else
                        g<<0;//g<<"01";
                }
                else
                {

                    if(C(aux))
                        g<<1;//g<<"C";
                    else if(B(aux))
                        g<<1;//g<<"B";
                    else
                        g<<0;//g<<"02";
                }


            }
            g<<'\n';
    }
    f.close();
    g.close();
    return 0;
}

bool B(int * p)
{
    if(*p==2)
        {
            p++;
            return B(p);
        }
    else if(*p==1&&p[2]==3)
    {
        p+=4;
        return C(p);
    }
    return false;
}

bool C(int * p)
{
    if(*p==2)
    {
        return true;
    }
    else if(*p==3)
    {
        p++;
        if(B(p))
        {
            p++;
            return C(p);
        }
    }
    else if(*p==1&&*(1+p)==2)
        return true;

    return false;
}