Cod sursa(job #2659189)

Utilizator CleliaClelia Maria Dobrescu Clelia Data 16 octombrie 2020 02:01:31
Problema Perle Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <fstream>
using namespace std;
ifstream fin ("perle.in");
ofstream fout ("perle.out");
int v[10101],k;
int okB (int poz);
int okC (int poz);
int okB (int poz)
{
    if (poz>k)
    {
        return 0;
    }
    if (v[poz]==2)
    {
        return okB(poz+1);
    }
    if (v[poz]==1 && v[poz+2]==3 && poz+3<=k)
    {
        return okC(poz+4);
    }
    return 0;
}
int okC (int poz)
{
    if (poz>k)
    {
        return 0;
    }
    if (v[poz]==2)
    {
        return poz+1;
    }
    if (v[poz]==3)
    {
        poz=okB(poz+1);
        if (poz>0 && poz<=k)
        {
            return okC(poz);
        }
    }
    if (v[poz]==1 && v[poz+1]==2 && poz+2<=k)
    {
        return poz+3;
    }
    return 0;
}
int main()
{
    int n,i,j;
    fin>>n;
    for (i=1;i<=n;i++)
    {
        fin>>k;
        for (j=1;j<=k;j++)
        {
            fin>>v[j];
        }
        if (okB(1)>k || okC(1)>k || k==1)
            fout<<"1";
        else
            fout<< "0";
        fout<<'\n';
    }
    return 0;
}