Cod sursa(job #2306898)

Utilizator ioanaa_ghGhiorghi Ioana-Cristina ioanaa_gh Data 23 decembrie 2018 10:40:41
Problema Perle Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.24 kb
#include <bits/stdc++.h>

using namespace std;

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

int N, x, a[10005];
int B(int &p);
int C(int &p);

int B(int &p)
{
    if(a[p] == 2)
    {
        p++;
        return B(p);
    }
    else if(a[p] == 1)
    {
        p++;
        if(a[p + 1] == 3)
        {
            p += 3;
            return C(p);
        }
    }
    return 0;
}

int C(int &p)
{
    if(a[p] == 2)
    {
        p++;
        return 1;
    }
    else if(a[p] == 3)
    {
        p++;
        if(B(p));
            return C(p);
    }
    else if(a[p] == 1 && a[p + 1] == 2)
    {
        p += 3;
        return 1;
    }
    return 0;
}

void Solve()
{
    int i, j, p = 1;
    fin >> N;
    for(i = 1; i <= N; i++)
    {
        fin >> x;
        for(j = 1; j <= x; j++)
            fin >> a[j];
        p = 1;
        if(x == 1)
        {
            fout << "1\n";
        }
        else
        {
            if(B(p) && p == x + 1)
                fout << "1\n";
            else if(C(p) && p == x + 1)
                fout << "1\n";
            else fout << "0\n";
        }
    }
    fin.close();
    fout.close();
}
int main()
{
    Solve();
    return 0;
}