Cod sursa(job #2183704)

Utilizator FunnyStockyMihnea Andreescu FunnyStocky Data 23 martie 2018 13:03:20
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.33 kb
#include <fstream>
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
const int N=100000;
int test;
int n,v[N+5];
int p;
bool gresit;
void A();
void B();
void C();
void A(){
    if(gresit==1)
        return;
    p++;
}
void B(){
    if(gresit==1)
        return;
    if(v[p]==2){
        p++;
        B();
        return;
    }
    if(v[p]==1){
        p++;
        A();
        if(v[p]!=3){
            gresit=1;
            return;
        }
        p++;
        A();
        C();
        return;
    }
    gresit=1;
}
void C(){
    if(gresit==1)
        return;
    if(v[p]==2){
        p++;
        return;
    }
    if(v[p]==3){
        p++;
        B();
        C();
        return;
    }
    if(v[p]==1){
        p++;
        if(v[p]!=2){
            gresit=1;
            return;
        }
        p++;
        A();
    }
}
int main(){
    fin>>test;
    while(test--){
        fin>>n;
        for(int i=1;i<=n;i++)
            fin>>v[i];
        v[n+1]=0;
        p=1;gresit=0;A();if(p==n+1 && gresit==0){fout<<"1\n";continue;}
        p=1;gresit=0;B();if(p==n+1 && gresit==0){fout<<"1\n";continue;}
        p=1;gresit=0;C();if(p==n+1 && gresit==0){fout<<"1\n";continue;}
        fout<<"0\n";
        //fout<<"\n";
    }
    return 0;
}
/**
**/