Cod sursa(job #1895526)

Utilizator silkMarin Dragos silk Data 28 februarie 2017 00:04:41
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <cstdio>
#include <cstring>
#define NMax 10000

int B(int);
int C(int);
int v[NMax+1];
int N;

int C(int p)
{
    if(v[p] == 2) return p+1;
    if(v[p] == 1 && v[p+1] == 2) return p+3;
    if(v[p] == 3) return C(B(p+1));
    return 0;
}

int B(int p)
{
    if(v[p] == 2) return B(p+1);
    if(v[p] == 1 && v[p+2] == 3) return C(p+4);
    return 0;
}

int main(){
    FILE* fin = fopen("perle.in","r");
    FILE* fout = fopen("perle.out","w");

    int i,T,N;

    fscanf(fin,"%d",&T);
    while(T--)
    {
        fscanf(fin,"%d",&N);
        memset(v,0,sizeof(v));
        for(i = 1; i <= N; ++i) fscanf(fin,"%d",&v[i]);
        if(N==1 || B(1) > N || C(1) > N) fprintf(fout,"1\n");
        else fprintf(fout,"0\n");
    }


return 0;
}