Cod sursa(job #2156403)

Utilizator AndreiG23Ghiurcuta Andrei AndreiG23 Data 8 martie 2018 18:24:58
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
int n,t,i,v[10001];
int B(int i);
int C(int i);

int B(int i)
{
    if(i+1<=n&&v[i]==2)
        return B(i+1);
    if(i+4<=n&&v[i]==1&&v[i+2]==3)
        return C(i+4);
    return -1;
}
int C(int i)
{
    if(i+2<=n&&v[i]==3)
        return C((B(i+1)));
    if(i+2<=n&&v[i]==1&&v[i+1]==2)
    return i+3;
    if(i<=n&&v[i]==2)
        return i+1;
    return -1;
}
int main()
{
    fin>>t;
    while(t!=0)
    {
        fin>>n;
        for(int k=1; k<=n; k++)
            fin>>v[k];
        if(n==0)
        {
            fout<<"0"<<endl;
            t--;
            continue;
        }
        if(n==1)
        {
            fout<<"1"<<endl;
            t--;
            continue;
        }
        if(B(1)==n+1||C(1)==n+1)
        {
            fout<<"1"<<endl;
            t--;
            continue;
        }
        else
        {
            fout<<"0"<<endl;
            t--;
            continue;
        }

    }

}