Cod sursa(job #1119820)

Utilizator serban_ioan97Ciofu Serban serban_ioan97 Data 24 februarie 2014 20:15:34
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
# include <fstream>
# include <cstdio>
using namespace std;

ofstream g("perle.out");

int a[10005], n, i, j, t;

int b(int i);
int c(int i);

int solve()
{
    if(n==1) return 1;
    if(n==2) return 0;
    if(a[1]==3) return c(1);
    if(a[1]==1) if(c(1)) return 1;

    return b(1);
}

int b(int i)
{
    if(a[i]==2) return b(i+1);
    if(a[i]==1 && a[i+2]==3) return c(i+4);
    return c(i+1);
}

int c(int i)
{
    if(a[i]==2 && i==n)return 1;
    if(a[i]==2) return c(i+1);
    if(a[i]==3) return b(i+1);
    if(a[i]==1 && a[i+1]==2 && i+2==n) return 1;
    if(a[i]==1 && a[i+1]==2) return c(i+3);
    return 0;
}


int main()
{
    freopen("perle.in","r",stdin);

    scanf("%d", &t);

    for(j=1; j<=t; j++)
    {
        scanf("%d", &n);
        for(i=1;i<=n;i++) scanf("%d", &a[i]);

        g<<solve()<<"\n";
    }

    return 0;
}