Cod sursa(job #1875552)

Utilizator MirunaMMiruna Mitu MirunaM Data 11 februarie 2017 11:50:20
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <stdio.h>
int v[10005];

int transfC(int poz);
int transfB(int poz);

int transfB(int poz){
    if (v[poz]==2)
        return transfB(poz+1);
    if (v[poz]==1 && v[poz+2]==3)
        return transfC(poz+4);
    return -1;
}

int transfC(int poz){
    if (v[poz]==2)
        return poz+1;
    if (v[poz]==3)
        return transfC(transfB(poz+1));
    if (v[poz]==1 && v[poz+1]==2)
        return poz+3;
    return -1;
}

int main(){
    freopen("perle.in", "r", stdin);
    freopen("perle.out", "w", stdout);
    int q,n,i,w;
    scanf("%d",&q);
    for(w=1;w<=q;w++){
        scanf("%d", &n);
        for (i=1; i<=n; i++)
            scanf("%d", &v[i]);
        if (n==1)
            printf("1\n");
        else
            if (transfB(1)==n+1 || transfC(1)==n+1)
                printf("1\n");
            else printf("0\n");
    }
    return 0;
}