Cod sursa(job #696771)

Utilizator mihai995mihai995 mihai995 Data 28 februarie 2012 20:00:52
Problema Perle Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
using namespace std;

const int N=10009;
int v[N],n,D;
char s[3*N];

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

int B(int),C(int);

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

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

bool rez()
{
    if (n<3)
        return n==1;
    return B(1)>=n || C(1)>=n;
}

int main()
{
    int t,x;
    in>>t;
    while (t--)
    {
        in>>n;
        for (int i=1;i<=n;i++)
            in>>v[i];
        out<<rez()<<"\n";
    }
    return 0;
}