Cod sursa(job #2359102)

Utilizator Anakin1001George Giorgiu Gica Anakin1001 Data 28 februarie 2019 17:12:46
Problema Perle Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.45 kb
#include <fstream>

using namespace std;
ifstream f("poly.in");
ofstream g("poly.out");
int v[10001],i,j,m,k,n,poz;
char x,st[10001];
int perle(){
    while(k>0){
        x=st[k];
        k--;
        if(x=='B'){
            if(v[poz]==3)
                return 0;
            else if(v[poz]==2){
                st[++k]='B';
                poz++;
            }
            else{
                if(v[poz+2]==3){
                    st[++k]='C';
                    poz+=4;
                }
                else
                    return 0;
            }
        }
        else if(x=='C'){
            if(v[poz]==1){
                if(v[poz+1]==2)
                    poz+=3;
            }
            else if(v[poz]==2){
                if(k==0&&poz<=n)
                    return 0;
                poz++;
            }
            else{
                st[++k]='C';
                st[++k]='B';
                poz++;
            }
        }
    }
    if(poz<=n)
        return 0;
    return 1;
}
int main()
{   f>>n;
    for(i=1;i<=n;i++){
        f>>m;
        for(j=1;j<=m;j++)
            f>>v[j];
        if(m==1){
            g<<1<<'\n';
            continue;
        }
        k=0;
        st[++k]='B';
        poz=1;
        if(perle()==1){
            g<<1<<'\n';
            continue;
        }
        k=0;
        poz=1;
        st[++k]='C';
        g<<perle()<<'\n';
    }
    return 0;
}