Cod sursa(job #1141190)

Utilizator roxana_97Soare Roxana Florentina roxana_97 Data 12 martie 2014 18:18:53
Problema Perle Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.9 kb
#include<fstream>
using namespace std;
ifstream f("perle.in");
ofstream g("perle.out");
int n,l,v[10009],s;
bool ok=true;
int main()
{
    f>>n;
    for(int j=1;j<=n;++j)
    {
        f>>l;
        ok=true;
        for(int i=1;i<=l;++i) v[i]=9;
        for(int i=1;i<=l;++i) f>>v[i];
        s=l;
        while(ok==true)
        {
            ok=false;
            for(int i=1;i<=s;++i)
            {
                if((v[i]==1 && v[i+1]<=4 && v[i+2]==3 && v[i+3]<=4 && v[i+4]==1 && v[i+5]==2 && v[i+6]<=4) || (v[i]==1 && v[i+1]<=4 && v[i+2]==3 && v[i+3]<=4 && v[i+4]==3 && v[i+5]==5 && (v[i+6]==6|| v[i+6]==2)))
                {
                    v[i]=5;
                    s=s-6;
                    ok=true;
                    for(int k=i+1;k<=l;++k) v[k]=v[k+6];
                }
                if(v[i]==1 && v[i+1]<=4 && v[i+2]==3 && v[i+3]<=4 && (v[i+4]==6 ||v[i+4]==2))
                {
                    v[i]=5;
                    s=s-4;
                    ok=true;
                    for(int k=i+1;k<=l;++k) v[k]=v[k+4];
                }
                if(v[i]==1 && v[i+1]==2 && v[i+2]<=4)
                {
                    v[i]=6;
                    s=s-2;
                    ok=true;
                    for(int k=i+1;k<=l;++k) v[k]=v[k+2];
                }
                if(v[i]==3 && v[i+1]==5 &&(v[i+2]==6 || v[i+2]==2))
                {
                    v[i]=6;
                    s=s-2;
                    ok=true;
                    for(int k=i+1;k<=l;++k) v[k]=v[k+2];
                }
                if(v[i]==2 && v[i+1]==5)
                {
                    ok=true;
                    v[i]=5;
                    s=s-1;
                    for(int k=i+1;k<=l;++k) v[k]=v[k+1];

                }
            }
        }
        if(s==1) g<<1<<'\n';
        else g<<0<<'\n';
    }
    f.close();g.close();
    return 0;
}