Cod sursa(job #1759030)

Utilizator iulianrotaruRotaru Gheorghe-Iulian iulianrotaru Data 18 septembrie 2016 13:55:54
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <fstream>
using namespace std;
ifstream f("perle.in");
ofstream g("perle.out");
int i,t,n,v[1<<14];
int C(int p);
int B(int p)
{
    if(p+1<=n&&v[p]==2) return B(p+1);
    if(p+4<=n&&v[p]==1&&v[p+2]==3) return C(p+4);
    return n+2;
}
int C(int p)
{
    if(p+2<=n)
    {
        if(v[p]==3) return C(B(p+1));
        if(v[p]==1&&v[p+1]==2) return p+3;
    }
    if(p<=n&&v[p]==2) return p+1;
    return n+2;
}
int main()
{
    f>>t;
    while(t--)
    {
        f>>n;
        for(i=1;i<=n;++i) f>>v[i];
        bool ok=0;
        if(n==1||B(1)==n+1||C(1)==n+1) ok=1;
        g<<ok<<'\n';
    }
    return 0;
}