Cod sursa(job #618441)

Utilizator predator5047Butiu Alexandru Octavian predator5047 Data 15 octombrie 2011 17:19:53
Problema Perle Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <cstdio>
#define MAX_N 10011
using namespace std;
int v[MAX_N];
int n;
int b(int i);   int c(int i);

int main()
{
    int t,rez;
    freopen("perle.in","r",stdin);
    freopen("perle.out","w",stdout);
    scanf("%d",&t);
    while (t--)
    {
    	scanf("%d",&n);
    	for (int i=1;i<=n;++i)
    		scanf("%d",&v[i]);
        if (n==1)
        	printf("1\n");
        else
        {
        	rez=b(1);
        	if(rez!=n+1)
                rez=c(1);
            if(rez==n+1)
                printf("1\n");
            else
                printf("0\n");
        }
    }
    fclose(stdin);
    fclose(stdout);

    return 0;
}

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

int c(int i)
{
    if(v[i]==2)
        return i+1;

    if(v[i]==1&&v[i+1]==2)
        return i+3;
    if(v[i]==3)
        return c(b(i+1));
    return n+2;
}