Cod sursa(job #1880656)

Utilizator catalin15Bahrin Catalin catalin15 Data 15 februarie 2017 20:52:14
Problema Perle Scor 90
Compilator cpp Status done
Runda ultimapregatireomi Marime 0.75 kb
#include <fstream>
#include <cstring>
using namespace std;

ofstream out("perle.out");
int v[10002], i, n, k, j;

int B(int i);
int C(int i);


int main()
{
    freopen("perle.in", "r", stdin);
    scanf("%d", &n);
    for(i=1;i<=n;i++)
    {
        scanf("%d", &k);
        if(k==1)
            out<<"1\n";
        for(j=1;j<=k;j++)
            scanf("%d" , &v[j]);

        if(B(1)==k+1 || C(1)==k+1)
            out<<"1\n";
        else
            out<<"0\n";
    }
    return 0;
}

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 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;
}