Cod sursa(job #401355)

Utilizator MKLOLDragos Ristache MKLOL Data 22 februarie 2010 19:52:29
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<stdio.h>
int K,v[10000],N;
int c(int k);
int b(int k);

int b(int k)
{
    if(v[k]==2)
    return b(k+1);
    if(v[k]==1&&v[k+2]==3)
    return c(k+4);
    return c(k+1);

}
int c(int k)
{

    if(v[k]==2 && k == K)
    return 1;
    if(v[k]==2)
    return c(k+1);
    if(v[k]==3)
    return b(k+1);
    if(v[k]==1&&v[k+1]==2&&k+2==K)
    return 1;
    if(v[k]==1 && v[k+1]==2) return c(k+3);
    return 0;

}
int solve()
{
    if(K==1)
    return 1;
    if(K==2)
    return 0;
    if(v[1]==3)
    return c(1);
    return b(1);
}
int main()
{
freopen("perle.in","r",stdin);
freopen("perle.out","w",stdout);
scanf("%d",&N);
for(int i=1;i<=N;++i)
    {
    int ok;
    scanf("%d",&K);
    for(int i=1;i<=K;++i)
        scanf("%d",&v[i]);
    ok=solve();
    printf("%d\n",ok);
    }
}