Cod sursa(job #2816290)

Utilizator andreimocianAndrei Mocian andreimocian Data 11 decembrie 2021 11:22:33
Problema Perle Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int t, n;
int a[10010];

int solveC(int i);

int solveB(int i)
{
    if (i > n)
        return n + 5;
    if (a[i] == 2)
        return solveB(i + 1);
    if (a[i] == 1 && a[i + 2] == 3)
        return solveC(i + 4);
    return n + 5;
}

int solveC(int i)
{
    if (i > n)
        return n + 5;
    if (a[i] == 2)
        return i;
    if (a[i] == 1 && a[i + 1] == 2)
        return i + 2;
    if (a[i] == 3)
        return solveC(solveB(i + 1) + 1);
    return n + 5;
}

int main()
{
    fin >> t;
    while (t--)
    {
        fin >> n;
        for (int i = 1; i <= n; i++)
        {
            fin >> a[i];
        }
        if (n == 1)
            fout << 1 << "\n";
        else if (solveC(1) == n || solveB(1) == n)
            fout << 1 << "\n";
        else
            fout << 0 << "\n";
    }
    return 0;
}