Cod sursa(job #920552)

Utilizator narcis_vsGemene Narcis - Gabriel narcis_vs Data 20 martie 2013 15:41:32
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include<cstdio>
#define In "perle.in"
#define Out "perle.out"
#define N 10004
using namespace std;
int n;
int a[N];
inline int B(int i);
inline int C(int i);

inline void Rez()
{
    if(n==1)
    {
        printf("1\n");
        return ;
    }
    if(C(1)==n || B(1)==n)
    {
        printf("1\n");
        return ;
    }
    printf("0\n");
}

int main()
{
    int i,k;
    freopen(In,"r",stdin);
    freopen(Out,"w",stdout);
    scanf("%d",&k);
    while(k)
    {
        scanf("%d",&n);
        for(i=1;i<=n;i++)
            scanf("%d",&a[i]);
        Rez();
        k--;
    }
    return 0;
}
inline int B(int i)
{
    if(i>n)
        return 0;
    if(a[i]==2)
        return B(i+1);
    if(a[i]==1 && a[i+2]==3)
        return C(i+4);
    return 0;
}
inline int C(int i)
{
    if(i>n)
        return 0;
    if(a[i]==2)
        return i;
    if(a[i]==3)
    {
        int k;
        k = B(i+1);
        if(k)
            return C(k+1);
    }
    if(a[i]==1 && a[i+1]==2)
        return i+2;
    return 0;
}