Cod sursa(job #2250394)

Utilizator armigheGheorghe Liviu Armand armighe Data 30 septembrie 2018 13:58:23
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<cstdio>
#include<fstream>
using namespace std;
FILE *f=fopen("perle.in","r");
ofstream g("perle.out");
int v[10010],n;

int C(int i);

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

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

int main()
{
    int t,i,l,sol;
    fscanf(f,"%d",&t);
    for(l=1;l<=t;l++)
    {
        fscanf(f,"%d",&n);
        for(i=1;i<=n;i++)
            fscanf(f,"%d",&v[i]);
        sol=0;
        if(n==1)
            sol=1;
        else
        {
            if(B(1)==n||C(1)==n)
                sol=1;
        }
        g<<sol<<'\n';
    }
    return 0;
}