Cod sursa(job #2183579)

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