Cod sursa(job #1876037)

Utilizator EuAlexOtaku Hikikomori EuAlex Data 11 februarie 2017 21:45:16
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <cstdio>

using namespace std;

int v[10005];
int solveC(int poz);

int solveB(int poz) {
    if(v[poz] == 2) {
        return solveB(poz + 1);
    }
    if(v[poz] == 1 && v[poz + 2] == 3) {
        return solveC(poz + 4);
    }
    return 0;
}

int solveC(int poz) {
    if(v[poz] == 2) {
        return poz + 1;
    }
    if(v[poz] == 1 && v[poz + 1] == 2) {
        return poz + 3;
    }
    if(v[poz] == 3) {
        return solveC(solveB(poz + 1));
    }
    return 0;
}

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

    int t, n;
    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 {
            if(solveB(1) == n + 1 || solveC(1) == n + 1) {
                printf("1\n");
            } else {
                printf("0\n");
            }
        }
    }

    return 0;
}