Cod sursa(job #895612)

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

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

int n,a[10001],lg;

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

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

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;
    if (a[x] == 3)
    {
        int b=B(x+1);
        if (b != 0)
        return C(b+1);
        else return 0;
    }
    else
        return 0;
}

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