Cod sursa(job #1849977)

Utilizator usureluflorianUsurelu Florian-Robert usureluflorian Data 18 ianuarie 2017 00:00:26
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
using namespace std;
ifstream f ("perle.in");
ofstream g ("perle.out");
int n,m,t,v[10001],i,j;
int culc(int k);
int culb(int k)
{
    if(k>m) return 0;
    if(v[k]==2) return culb(k+1);
    if(v[k]==1&&v[k+2]==3) return culc(k+4);
    return 0;
}
int culc(int k)
{
    if(k>m) return 0;
    if(v[k]==2) return k;
    if(v[k]==3)
    {
        t=culb(k+1);
        if(t) return culc(t+1);
        else return 0;
    }
    if(v[k]==1&&v[k+1]==2) return k+2;
    return 0;
}
int main()
{
    f>>n;
    for(i=1;i<=n;++i)
    {
        f>>m;
        for(j=1;j<=m;++j) f>>v[j];
        if(m==1) {g<<1<<'\n';continue;}
        if(culb(1)!=m&&culc(1)!=m) g<<0<<'\n';
        else g<<1<<'\n';
    }
    return 0;
}
//  B -> 2B | 1A3AC
//       C -> 2 | 3BC | 12A