Cod sursa(job #2152366)

Utilizator MihneaGhiraMihnea MihneaGhira Data 5 martie 2018 14:33:09
Problema Perle Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include<fstream>
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
int t,n,i;
int v[10001];
int B(int k),C(int k);

int B(int k){
    if(k+1<=n&&v[k]==2)
        return B(k+1);

    if(k+4<=n&&v[k]==1&&v[k+2]==3)
        return C(k+4);

    return -1;
}

int C(int k){
    if(k+1<=n&&v[k]==2)
        return k+1;

    if(k+2<=n){
        if(v[k]==3)
            return C(B(k+1));
        if(v[k]==1&&v[k+1]==2)
            return k+3;
    }

    return -1;
}

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