Cod sursa(job #2359123)

Utilizator Anakin1001George Giorgiu Gica Anakin1001 Data 28 februarie 2019 17:32:14
Problema Perle Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.71 kb
#include <fstream>

using namespace std;
ifstream f("perle.in");
ofstream g("perle.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++;
               if(poz>m-1)
                  return 0;
            }
            else{
                if(v[poz+2]==3){
                    st[++k]='C';
                    poz+=4;
                    if(poz>m)
                       return 0;
                }
                else
                    return 0;
            }
        }
        else if(x=='C'){
            if(v[poz]==1){
                if(v[poz+1]==2)
                    poz+=3;
                    if(poz<=m&&k==0)
                      return 0;
            }
            else if(v[poz]==2){
                poz++;
                if(k==0&&poz<=m)
                    return 0;

            }
            else{
                st[++k]='C';
                st[++k]='B';
                poz++;
                if(poz>=m-4)
                    return 0;
            }
        }
    }
    if(poz<=m)
        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;
}