Cod sursa(job #2121423)

Utilizator AndreiTurcasTurcas Andrei AndreiTurcas Data 3 februarie 2018 17:45:38
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream f("perle.in");
ofstream g("perle.out");

int n, v[10005], t;

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

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

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

int main()
{
    f >> n;
    for(int i = 1; i <= n; ++i)
    {
        f >> t;
        for(int i = 1; i <= t; ++i)
            f >> v[i];
        if(t == 1) g << 1 << "\n";
        else
            g << (B(1) == t+1 || C(1) == t+1) << "\n";
    }
}