Cod sursa(job #3196680)

Utilizator AlexanderCernyCernaianu Alexandru AlexanderCerny Data 24 ianuarie 2024 16:42:41
Problema Perle Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 2.06 kb
/// Aceasta sursa este pentru problema
/// https://www.infoarena.ro/problema/perle
/// Punctaj: 100
/// Grupa de seniori - Clasa a X-a

#include <fstream>
#define DIM 10010

using namespace std;

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

int v[DIM];
int n,t,i,T;
int A();
int B();
int C();

int A()
{
    if(i==n+1)
        return 0;
    if(v[i]==1 || v[i]==2 || v[i]==3)
    {
        i++;
        return 1;
    }
    else
        return 0;
}
int B()
{
    if(i==n+1)
        return 0;
    if(v[i]==2)
    {
        i++;
        return B();
    }
    else
    {
        if(v[i]==1)
        {
            i++;
            int aux=A();
            if(aux==0)
                return 0;
            if(v[i]!=3)
                return 0;
            i++;
            aux=A();
            if(aux==0)
                return 0;
            return C();
        }
        else
            return 0;
    }
}
int C()
{
    if(i==n+1)
        return 0;
    if(v[i]==2)
    {
        i++;
        return 1;
    }
    else
    {
        if(v[i]==1)
        {
            i++;
            if(v[i]!=2)
            {
                i++;
                return 0;
            }
            else
            {
                i++;
                return A();
            }
        }
        else
        {
            i++;
            int aux=B();
            if(aux==0)
                return 0;
            return C();
        }
    }
}
int main()
{
    fin>>T;
    while(T)
    {
        fin>>n;
        for(i=1;i<=n;i++)
            fin>>v[i];
        i=1;
        int rez=A();
        if(rez==1&&i==n+1)
        {
            fout<<"1/n";
            continue;
        }
        i=1;
        rez=B();
        if(rez==1&&i==n+1)
        {
            fout<<"1/n";
            continue;
        }
        i=1;
        rez=C();
        if(rez==1&&i==n+1)
        {
            fout<<"1/n";
            continue;
        }
        fout<<"0/n";
        T--;
    }
    return 0;
}