Cod sursa(job #2928000)

Utilizator MogoneaMIhneaMogonea Mihnea Mihai MogoneaMIhnea Data 21 octombrie 2022 23:01:39
Problema Perle Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.42 kb
#include <fstream>
using namespace std;
ifstream fin ("perle.in");
ofstream fout("perle.out");
int v[100010];
int n, i, T;
int A();
int B();
int C();
int A(){
    if(v[i]==1 || v[i]==2 || v[i]==3){
        i++;
    return 1;
    }else
return 0;
}
int B(){
    if(v[i]==2){
        i++;
    return B();
    }else
        if(v[i]==1){
            i++;
        int aux=A();
        if(aux==0)
            return 0;
            if(v[i]!=3)
                return 0;
                i++;
            aux=A();
            if (aux==0)
                return 0;
        return C();
        }else
            return 0;
}
int C(){
    if (v[i]==2){
        i++;
    return 1;
    }else
    if(v[i]==1){
        i++;
        if(v[i]!=2){
            i++;
        return 0;
        }else{
            i++;
        return A();
        }
    }else{
        i++;
    int aux=B();
    if(aux==0)
        return 0;
    return C();
    }
}
int main(){
    for(fin>>T; T--;){
        fin>>n;
        for (i=1;i<=n;i++)
            fin>>v[i];
            i=1;
        int rez=A();
        if(rez==1){
            fout<<"1\n";
        continue;
        }
        i=1;
        rez=B();
        if(rez==1){
            fout<<"1\n";
        continue;
        }
        i=1;
        rez=C();
        if(rez==1){
            fout<<"1\n";
        continue;
        }
        fout<<"0\n";
    }
}