Cod sursa(job #856686)

Utilizator WolfezLiciu Iustin Wolfez Data 16 ianuarie 2013 20:47:34
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <iostream>
#include <fstream>

using namespace std;

long n,i,k,y,z,x[10005];
long B(long x);
long C(long x);

long B (long y)
{
    if (n<y)
        return 0;
    if (x[y]==2)
        return B(y+1);
    if ((x[y]==1) && (x[y+2]==3))
        return C(y+4);
    return 0;
}

long C (long y)
{
    if (n<y)
        return 0;
    if (x[y]==2)
        return y;
    if ((x[y]==1) &&( x[y+1]==2))
        return y+2;
    if (x[y]==3)
    {
        long z=B(y+1);
        if(z!=0)
            return C(z+1);
    }
    return 0;
}

int main()
{
    ifstream f("perle.in");
    ofstream g("perle.out");
    f>>k;
    while (k!=0)
    {
        f>>n;
        for (i=1;i<=n;i++)
            f>>x[i];
        if ((n==1) || (n==B(1)) || (n==C(1)))
            g<<"1"<<endl;
        else
            g<<"0"<<endl;
        k=k-1;;
    }
    return 0;
}