Cod sursa(job #2153168)

Utilizator MihneaGhiraMihnea MihneaGhira Data 5 martie 2018 23:38:45
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include<fstream>
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
int t,n,i;
int v[10001];
int B(int i),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){
        if(v[i]==3){
            return C(B(i+1));
        }
        if(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(i=1;i<=n;i++)
            fin>>v[i];
        if(n==0){
            fout<<"0"<<"\n";
            t--;
            continue;
        }
        if(n==1){
            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;
}