Cod sursa(job #1880217)

Utilizator andrei20003Ionescu Andrei andrei20003 Data 15 februarie 2017 16:59:21
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <cstdio>

using namespace std;

int v[10002];
int B(int i),C(int i);

int B(int i) {
    if(v[i]==2)
		return B(i+1);
    if(v[i]==1 && v[i+2]==3)
		return C(i+4);
    return -1;
}
int C(int i) {
    if(v[i]==2)
		return i+1;
    if(v[i]==3)
		return C(B(i+1));
    if(v[i]==1 && v[i+1]==2)
		return i+3;
    return -1;
}

int main()
{
    freopen("perle.in", "r", stdin);
    freopen("perle.out", "w", stdout);
    int n, t;
    scanf("%d", &n);
    for(int i=1; i<=n; i++) {
        scanf("%d", &t);
        for(int j=1; j<=t; j++) scanf("%d", &v[j]);
        if(t == 1) printf("1\n");
        else
            if(B(1)==t+1 || C(1)==t+1)
				printf("1\n");
            else
				printf("0\n");
    }
}