Cod sursa(job #1919010)

Utilizator HD650Stoicescu Adrian Nicolae HD650 Data 9 martie 2017 17:40:37
Problema Perle Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 3.24 kb
#include <iostream>
#include <fstream>
using namespace std;
/*
A -> 1  | 2     | 3
B -> 2B | 1A3AC
C -> 2  | 3BC   | 12A
*/
ifstream f("perle.in");
ofstream g("perle.out");
int n,i,v[10001],j,lv;
bool nrc;
int main()
{
    f>>n;
    for(i=0;i<n;i++)
    {
        bool gs=0;
        f>>lv;
        for(j=1;j<=lv;j++)
        {
            f>>v[j];
        }
        j=1;
        if(lv==1)gs=1;///e A
        else if(lv==3 && v[1]==1 && v[2]==2)gs=1;
        else
        {   ///incepe cu B
            if(v[j]==3){j++;nrc=1;}
            da:
            while(v[j]==2)j++;
            if(v[j]==1 && v[j+2]==3 && j<=lv-4)
            {
                j+=4;
                while(v[j]==2)j++;
                if(j==lv)gs=1;///daca C este 2
                else if(v[j]==1)///daca C este 12A
                    {if(v[j+1]==2){gs=1;j+=2;}}
                else if(v[j]==3 && j+2<=lv)///C este 3BC
                {
                    j++;nrc=1;
                    goto da;
                }
                if(j==lv)gs=1;
                if(nrc==1){
                    if(v[j]==2)goto da;///daca C este 2
                    else if(v[j]==1)///daca C este 12A
                        {if(v[j+1]==2)j+=2;nrc=0;goto da;}
                    else if(v[j]==3)///C este 3BC
                    {
                        j++;
                    }
                    nrc=0;
                }
            }
        }

        g<<gs<<'\n';
    }














































































































































































































































































































































































































































































































































































































































































































































































































































































































































}