Cod sursa(job #2016147)

Utilizator cipri321Marin Ciprian cipri321 Data 28 august 2017 18:52:10
Problema Perle Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.27 kb
#include <fstream>
#define DIM 10005
using namespace std;
ifstream fi("perle.in");
ofstream fo("perle.out");
int n,l;
int s[DIM];
int poz;
int bagac(int &poz);
int bagab(int &poz)
{
    if(s[poz]==2)
    {
        poz++;
        return bagab(poz);
    }
    else if(s[poz]==1)
    {
        if(s[poz+2]==3)
        {
            poz+=4;
            return bagac(poz);
        }
    }
    return 0;
}
int bagac(int &poz)
{
    if(s[poz]==2)
    {
        poz++;
        return 1;
    }
    else if(s[poz]==3)
    {
        poz++;
        if(bagab(poz))
            return bagab(poz);
    }
    else if(s[poz]==1 && s[poz+1]==2)
    {
        poz+=3;
        return 1;
    }
    return 0;
}
int main()
{
    fi>>n;
    for(int i=1;i<=n;i++)
    {
        fi>>l;
        for(int j=1;j<=l;j++)
            fi>>s[j];
        if(l==1)
            fo<<1<<"\n";
        else
        {
            poz=1;
            if(bagab(poz)&&poz==l+1)
                fo<<1<<"\n";
            else
            {
                poz=1;
                if(bagac(poz)&&poz==l+1)
                    fo<<1<<"\n";
                else
                    fo<<0<<"\n";
            }
        }
    }
    fi.close();
    fo.close();
    return 0;
}