Cod sursa(job #1168832)

Utilizator alex_bucevschiBucevschi Alexandru alex_bucevschi Data 9 aprilie 2014 18:32:57
Problema Perle Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <fstream>
#include <string>
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
int poz,n,a[10010],t,i,x;
bool adB();
inline bool adC()
{
    if(poz>n)
        return 0;
    if(a[poz]==2)
    {
        poz++;
        return 1;
    }
    if(a[poz]==1&&a[poz+1]==2)
    {
        poz+=3;
        return 1;
    }
    if(a[poz]==3)
        return adB()&&adC();
    return 0;
}
inline bool adB()
{
    if(poz>n)
        return 0;
    if(a[poz]==2)
    {
        poz++;
        return adB();
    }
    if(a[poz]==1&&a[poz+2]==3)
    {
        poz+=4;
        return adC();
    }
    return 0;
}
int main()
{
    fin>>t;
    for(;t;t--)
    {
        fin>>n;
        for(i=1;i<=n;i++)
            fin>>a[i];
        poz=1;
        if(n==1)
        {
            fout<<"1\n";
            continue;
        }
        if(n>=5&&a[1]==1&&a[3]==3||a[1]==2)
        {
            fout<<adB()<<'\n';
            continue;
        }
        fout<<adC()<<'\n';
    }
    return 0;
}