Cod sursa(job #906999)

Utilizator MihaiSebastianSebasian MihaiSebastian Data 7 martie 2013 15:36:31
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>

using namespace std;
#define NMAX 10010
ifstream f("perle.in");
ofstream g("perle.out");
int n,nr, a[NMAX];
int B(int k);
int C(int k)
{
    if(k>nr)return 0;
    if(a[k]==2)return k;
    if(a[k]==3)
        {

            int t=B(k+1);
            if(t)
                return C(t+1);
            return 0;
        }
    if(a[k]==1 && a[k+1]==2)return k+2;
    return 0;

}
int B(int k)
{
    if(k>nr) return 0;
    if(a[k]==2)
        return B(k+1);
    else
        if(a[k]==1 && a[k+2]==3)
            return C(k+4);
    return 0;

}
void sol()
{
    if(nr==1)
        {
            g<<1<<'\n';
            return ;
        }
    if(B(1)==nr || C(1)==nr)
    {
        g<<1<<'\n';
        return ;
    }
    g<<0<<'\n';

}
int main()
{
    int j;
    f>>n;
    for(int i=1;i<=n;++i)
    {

        f>>nr;
        for(j=1;j<=nr;++j)
            f>>a[j];
        sol();
    }
    return 0;
}