Cod sursa(job #2926250)

Utilizator carinamariaCarina Maria Viespescu carinamaria Data 17 octombrie 2022 14:21:24
Problema Perle Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.29 kb
#include <fstream>
using namespace std;
ifstream cin("perle.in");
ofstream cout("perle.out");
int t, i, j, ii, n, m;
int v[10005];
bool a,b,c;
bool pa();
bool pb();
bool pc();
bool pa(){
    if (i>n)
        return 0;
    i++;
    return 1;
}
bool pb() {
    if (i>n)
        return 0;
    if (v[i]==3){
        i++;
        return 0;
    }
    if (v[i]==2){
        i++;
        return pb();
    }
    if (v[i]==1 && v[i+2]==3){
        i++;
        if (pa()==0)
            return 0;
        i++;
        return pa() && pc();
    }
    return 0;
}
bool pc(){
    if (i>n)
        return 0;
    if (v[i]==2) {
        i++;
        return 1;
    }
    if (v[i]==1) {
        if (v[i+1]==2) {
            i+=2;
            return pa();
        }
        return 0;
    }
    i++;
    return pb() && pc();
}
int main(){
    cin>>t;
    for(ii=1;ii<=t;ii++){
        cin>>n;
        for (i=1;i<=n;i++)
            cin>>v[i];
        i=1;
        if (pa() && i>n) {
            cout<<"1"<<"\n";
            continue;
        }
        i=1;
        if (pb() && i>n) {
            cout<<"1"<<"\n";
            continue;
        }
        i=1;
        if (pc() && i>n)
            cout<<"1"<<"\n";
        else
            cout<<"0"<<"\n";
    }
}