Cod sursa(job #1584885)

Utilizator mirupetPetcan Miruna mirupet Data 30 ianuarie 2016 16:17:42
Problema Perle Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<cstdio>
#define DIM 10002
using namespace std;

FILE *fin = freopen("perle.in", "r", stdin);
FILE *fout = freopen("perle.out", "w", stdout);

int T, N;
int v[DIM];

int eval_c(int);

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

int eval_c(int i)
{
    if (v[i] == 1 && v[i + 1] == 2) return i + 3;
    if (v[i] == 2)                  return i + 1;
    if (v[i] == 3)                  return eval_c(eval_b(i + 1));
    return -1;
}

int main()
    {
        scanf("%d", &T);
        while (T--)
        {
            for (int i = 1; scanf("%d", &N), i <= N; i++)
                scanf("%d", &v[i]);

            if (N == 1 || eval_b(1) == N + 1 || eval_c(1) == N + 1)
                printf("1\n");
            else
                printf("0\n");
        }
    }