Cod sursa(job #2358556)

Utilizator anamariatoaderAna Toader anamariatoader Data 28 februarie 2019 10:17:01
Problema Perle Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.24 kb
#include <fstream>

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

int n,m,i,v[10005],s[10005],k,q,ok;
int perlaB(int k);

int perlaC(int k){
    for(int i=k;i<=n && ok==-1;i++){
        if(i==n &&v[i]==2)
            ok=1;
        else if(i==n-2 && v[i]==1 && v[i+1]==2) /// 12A
            ok=1;
        else if(v[i]==3){ /// 3BC
            perlaB(i+1);
            perlaC(i+2);
        }
        else
            ok=1;
    }
    return 0;
}

int perlaB(int k){
    for(int i=k;i<=n && ok==-1;i++){
        if(v[i]==1 && v[i]+2==3){
            ///TRANSFORM IN 1A3AC
            perlaC(i+4);
        }
        else if(v[i]==2){
            perlaB(i+1);
        }
        else
            ok=0;
    }
    return 0;
}

int main ()
{
    fin>>m;
    for(q=1;q<=m;q++){
        fin>>n;
        for(i=1;i<=n;i++)
            fin>>v[i];
        ok=-1;
        if(n==1){ /// AM O SINGURA PERLA - PERLA A
            fout<<1<<'\n';
            continue;
        }
        else if(v[1]==3){ ///INCEP CU PERLA 3
            perlaC(1);
        }
        int aux = perlaB(1);
        if(ok==1)
            fout<<1<<'\n';
        else
            fout<<0<<'\n';
    }
    return 0;
}