Cod sursa(job #1459789)

Utilizator akaprosAna Kapros akapros Data 10 iulie 2015 19:05:57
Problema Perle Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <cstdio>
#include <algorithm>
#include <cstring>
#define Nmax 10002
using namespace std;
int n, m, i, j;
int v[Nmax];
void B(int &i);
void C(int &i);
void B(int &i)
{
    if (v[i] == 2 && i != m)
    {
        ++ i;
        B(i);
    }
    if (v[i] == 1 && v[i + 2] == 3 && i + 4 < m)
    {
        i += 4;
        C(i);
    }
}
void C(int &i)
{
    if (v[i] == 2 && i == m)
        ++ i;
    if (v[i] == 3 && i + 2 < m)
    {
        ++ i;
        B(i);
        C(i);
    }
    if (v[i] == 1 && v[i + 1] == 2 && m - i == 2)
        i = m + 1;
}
int main()
{
    freopen("perle.in", "r", stdin);
    freopen("perle.out", "w", stdout);
    scanf("%d\n", &n);
    while (n --)
    {
        scanf("%d ", &m);
        for (i = 1; i <= m; ++ i)
            scanf("%d", &v[i]);
        i = 1;
        B(i);
        if (m == 1 || i == m + 1)
            printf("%d\n", 1);
        else
        {
            i = 1;
            C(i);
            if (i <= m)
                printf("%d\n",0);
            else printf("%d\n", 1);
        }
    }
    return 0;
}