Cod sursa(job #2123060)

Utilizator ioana_marinescuMarinescu Ioana ioana_marinescu Data 5 februarie 2018 19:14:45
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("perle.in");
ofstream fout("perle.out");

int v[10005], n, k;
int B(int);
int C(int);

int B(int poz)
{
    if(poz<=k) {
        if(v[poz]==2)
            return B(poz+1);
        else
            if(v[poz]==1 && v[poz+2]==3)
                return C(poz+4);
    }
    return -1;
}

int C(int poz)
{
    if(poz<=k) {
        if(v[poz]==2)
            return poz+1;
        else if(v[poz]==3)
            return C(B(poz+1));
        else if(v[poz]==1 && v[poz+1]==2)
            return poz+3;
    }
    return -1;
}

int main()
{
    fin>>n;
    while(n--) {
        fin>>k;
        for(int i=1; i<=k; i++)
            fin>>v[i];
        if(k==1)
            fout<<1<<'\n';
        else
            fout<<(B(1)==k+1 || C(1)==k+1)<<'\n';
    }
    return 0;
}