Cod sursa(job #3197116)

Utilizator AlexSerban21Serban Alexandru AlexSerban21 Data 25 ianuarie 2024 17:59:26
Problema Perle Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.32 kb
#include <fstream>
using namespace std;
ifstream fin ("perle.in");
ofstream fout ("perle.out");
int t,n,i,o,v[10001];
bool fa ();
bool fb ();
bool fc ();
bool fa ()
{
    if (i>n)
        return 0;
    if (v[i]==1||v[i]==2||v[i]==3)
    {
        i++;
        return 1;
    }
    return 0;
}
bool fb ()
{
    if (i>n)
        return 0;
    if (v[i]==2)
    {
        i++;
        return fb ();
    }
    if (v[i++]==1&&fa ()&&v[i++]==3&&fa ()&&fc ())
        return 1;
    else
        i--;
    return 0;
}
bool fc ()
{
    if (i>n)
        return 0;
    if (v[i]==2)
    {
        i++;
        return 1;
    }
    if (v[i++]==3&&fb ()&&fc ())
        return 1;
    else
        i--;
    if (v[i++]==1&&v[i++]==2&&fa ())
        return 1;
    else
        i--;
    return 0;
}
int main ()
{
    fin>>t;
    for (o=1; o<=t; o++)
    {
        fin>>n;
        for (i=1; i<=n; i++)
            fin>>v[i];
        i=1;
        if (fa ()&&i==n+1)
        {
            fout<<"1\n";
            continue;
        }
        i=1;
        if (fb ()&&i==n+1)
        {
            fout<<"1\n";
            continue;
        }
        i=1;
        if (fc ()&&i==n+1)
        {
            fout<<"1\n";
            continue;
        }
        fout<<"0\n";
    }
    return 0;
}