Cod sursa(job #895676)

Utilizator GoldEagleAndrei Iulian GoldEagle Data 27 februarie 2013 12:10:42
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include<fstream>
using namespace std;

int a[10001],n,lg;

ifstream fin("perle.in");
ofstream gin("perle.out");

int C(int x);
int B(int x);

int B (int x)
{
    while(x <= lg && a[x] == 2)
        x++;
        if(a[x] == 1 && a[x+2] == 3)
            return C(x+4);
    else
        return 0;
}

int C(int x)
{
    if(a[x] == 2)
        return x;
    else
        if(a[x] == 1 && a[x+1] == 2)
            return x+2;
        else
            if(a[x] == 3)
            {
                int b=B(x+1);
                if(b!=0)
                 return C(b+1);
                else
                    return 0;
            }
        else
           return 0;
}

int verif()
{
    if(lg == 1)
        return 1;
    else
        if(B(1) == lg || C(1) == lg)
            return 1;
    else
        return 0;
}

int main()
{    int i,j;

    fin>>n;
    for(j=1;j<=n;j++)
    {
        fin>>lg;
        for(i=1;i<=lg;i++)
            fin>>a[i];
        gin<<verif()<<"\n";
    }
fin.close(); gin.close();
return 0;
}