Cod sursa(job #3326692)

Utilizator horatiu.avramAvram Popa Cristian Horatiu horatiu.avram Data 29 noiembrie 2025 23:19:44
Problema Perle Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("perle.in");
ofstream fout("perle.out");

const int MAXN=1e4;
const int INVALID=-1;

int v[MAXN+1];
int placeb(int idx);
int placec(int idx);

int placeb(int idx) {
    if(v[idx]==2) { //2B
        return placeb(idx+1);
    } else if(v[idx]==1&&v[idx+2]==3) { //1A3AC
        return placec(idx+4);
    }
    return INVALID;
}

int placec(int idx) {
    if(v[idx]==2) { //2
        return idx+1;
    } else if(v[idx]==3) { //3BC
        return placec(placeb(idx+1));
    } else if(v[idx]==1&&v[idx+1]==2) { //12A
        return idx+3;
    }
    return INVALID;
}

int main() {
    int t,n;
    fin>>t;
    while(t--) {
        fin>>n;
        for(int i=1; i<=n; i++) {
            fin>>v[i];
        }
        if(n>1) {
            int pos1=placeb(1);
            int pos2=placec(1);
            fout<<((pos1==n+1)||(pos2==n+1))<<'\n';
        } else {
            fout<<"1\n";
        }
    }
    return 0;
}