Cod sursa(job #898541)

Utilizator swim406Teudan Adina swim406 Data 28 februarie 2013 10:38:27
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <stdio.h>

using namespace std;

int N, v[10001], i, p;

int C(int x);
int B(int x);

int C (int x) {
    if (x > v[0]) return 0;

    if (v[x] == 3) return C(B(x + 1));

    if (v[x] == 1 && v[x + 1] == 2) return x + 3;

    if (v[x] == 2) return x + 1;

    return 0;
}

int B (int x) {
    if (x > v[0]) return 0;

    if (v[x] == 2) return B(x + 1);

    if (v[x] == 1 && v[x + 2] == 3) return C(x + 4);

    return 0;

}

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