Cod sursa(job #2298529)

Utilizator Mirela_MagdalenaCatrina Mirela Mirela_Magdalena Data 8 decembrie 2018 11:18:27
Problema Perle Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.43 kb
#include <cstdio>
using namespace std;
int t, n;
int a[10001];
void c(int &poz);

void b(int &poz)
{
    if(poz>n)
        return;
    else if(a[poz] == 1 && a[poz+2] == 3)
    {
        poz+=4;
        c(poz);
    }
    else if(a[poz] == 2)
    {
        poz++;
        b(poz);
    }
    else
    {
        poz--;
        return;
    }
}


void c(int &poz)
{
    if(poz>n)
        return;
    else if(a[poz] == 2)
        return;
    else if(a[poz] == 3)
    {
        poz++;
        b(poz);
        poz++;
        c(poz);
    }
    else if(a[poz]==1 && a[poz+1]==2)
    {
        poz+=2;
        return;
    }
    else
    {
        poz--;
        return;
    }

}


int main()
{
    freopen("perle.in","r",stdin);
    freopen("perle.out","w",stdout);
    scanf("%d",&t);
    for(int i=1; i<=t; i++){
        scanf("%d ",&n);
        for(int j=1; j<=n; j++)
        {
            scanf("%d",&a[j]);
        }
        if(n>1)
        {
            int poz=1;
            if(a[1]==1||a[1]==2)
                b(poz);

            if(poz==n)
                printf("1\n");
            else{ c(poz);
                  if(poz==n)
                    printf("1\n");
                  else printf("0\n");
            }


        }
        else if(a[1]==1 ||a[1]==2 ||a[1]==3 )
            printf("1\n");
        for(int j=1; j<=n; j++)
            a[j]=0;


    }
    return 0;
}