Cod sursa(job #3134897)

Utilizator dobreraduDobre Radu Fabian dobreradu Data 31 mai 2023 18:44:49
Problema Perle Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.25 kb
#include <fstream>
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
int t,n,i,v[10010];
bool a,b,c;

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())
            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() {
    fin>>t;
    while (t--) {
        fin>>n;
        for (i=1;i<=n;i++)
            fin>>v[i];
        i=1;
        if (pa() && i>n) {
            fout<<"1\n";
            continue;
        }
        i=1;
        if (pb() && i>n) {
            fout<<"1\n";
            continue;
        }
        i=1;
        if (pc() && i>n)
            fout<<"1\n";
        else
            fout<<"0\n";
    }
    return 0;
}