Cod sursa(job #2505145)

Utilizator Xutzu358Ignat Alex Xutzu358 Data 6 decembrie 2019 11:52:59
Problema Perle Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <iostream>

using namespace std;

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

int v[10100], n, T, k, ok;

void A();
void B();
void C();

void A()
{
    if(k == n+1) ok = 0;
    k++;
}
void B()
{
    if(k == n+1) ok = 0;
    if(v[k] == 2 && k != n) k++, B();
    else if(v[k] == 1 && v[k+2] == 3) k+=4, C();
}
void C()
{
    if(k == n+1) ok = 0;
    if(v[k] == 2) k++;
    else if(v[k] == 3) k++, B(), C();
    else if(v[k] == 1 && v[k+1] == 2) k+=2, A();
}

void getStart()
{
    if(n == 1) A();
    else if(v[1] == 2 || (v[1] == 1 && n != 3)) B();
    else C();
}



int main()
{
    f >> T;
    while(T--)
    {
        f >> n;
        k = ok = 1;
        for(int i=1; i<=n; i++) f >> v[i];
        getStart();
        if(k == n+1 && ok) g << 1 << '\n';
        else g << 0 << '\n';
    }
    return 0;
}