Cod sursa(job #2929686)

Utilizator radustefanescu2006@gmail.comRadu Stefanescu [email protected] Data 26 octombrie 2022 15:26:17
Problema Perle Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <fstream>

using namespace std;

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

int n, m, i, j, sir[10005];

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

int main()
{
    fin >> n;
    for(i = 0; i < n; i++)
    {
        fin >> m;
        for(j = 0; j < m; j++)
        {
            fin >> sir[j];
        }
        if(m == 1 || B(0) + 1 == m  || C(0) + 1 == m)
        {
            fout << "1\n";
        }
        else
        {
            fout << "0\n";
        }
    }

    return 0;
}

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

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