Cod sursa(job #1510280)

Utilizator Julian.FMI Caluian Iulian Julian. Data 24 octombrie 2015 19:44:08
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>
#define nmax 10005
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
int m,a[nmax];
int validc(int i);

int validb(int i)
{
    if(i+1<=m)
        if(a[i]==2)
            {return validb(i+1);}

    if(i+4<=m)
        if(a[i]==1 && a[i+2]==3)
        {return validc(i+4);}

    return m+2;
}

int validc(int i)
{
   if(i+2<=m)
    if(a[i]==3)
    {int poz=validb(i+1);
    return validc(poz);
    }
    if(i+2<=m)
        if(a[i]==1 && a[i+1]==2)return i+3;
    if(i<=m)
        if(a[i]==2)return i+1;

    return m+2;
}

int main()
{int n,i,j;
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>m;
        for(j=1;j<=m;j++)
            fin>>a[j];

        if(validb(1)==m+1 || validc(1)==m+1 || m==1) fout<<1<<'\n';
        else fout<<0<<'\n';
    }
}