Cod sursa(job #2371151)

Utilizator Raresr14Rosca Rares Raresr14 Data 6 martie 2019 16:15:00
Problema Perle Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.35 kb
#include <fstream>
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
int t,n,k,v[10010],A(),B(),C(),i,verif;
int A(){
    if(v[k]==1||v[k]==2||v[k]==3){
        k++;
        return 1;
    }
    return 0;
}
int B(){
    if(v[k]==2){
        k++;
        return B();
    }
    if(v[k]==1){
        k++;
        if(A()){
            if(v[k]==3){
                k++;
                if(A()){
                  return C();
                }
            }
        }
    }
    return 0;
}
int C(){
    if(v[k]==2){
        k++;
        return 1;
    }
    if(v[k]==3){
        k++;
        if(B()){
            if(C()){
                return 1;
            }
        }
    }
    if(v[k]==1&&v[k+1]==2){
        k+=2;
        if(A()){
            return 1;
        }
    }
    return 0;
}
int main(){
    fin>>t;
    for(;t--;){
        fin>>n;
        for(i=1;i<=n;i++)
            fin>>v[i];
        k=1;
        verif=A();
        if(verif&&k==n+1){
            fout<<"1\n";
            continue;
        }
        k=1;
        verif=B();
        if(verif&&k==n+1){
            fout<<"1\n";
            continue;
        }
        k=1;
        verif=C();
        if(verif&&k==n+1){
            fout<<"1\n";
            continue;
        }
        fout<<"0\n";
    }
    return 0;
}