Cod sursa(job #1840677)

Utilizator Valentin0709Datcu George Valentin Valentin0709 Data 4 ianuarie 2017 18:39:54
Problema Perle Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<stdio.h>
#include<string.h>
using namespace std;

FILE*f=fopen("perle.in","r");
FILE*g=fopen("perle.out","w");

int c[10001],i,k,l,n;

int perlaB(int k);
int perlaC(int k);

int perlaB(int k) {
    if(c[k]==1&&c[k+2]==3) return perlaC(k+4);
    if(c[k]==2) return perlaB(k+1);
    return 0;
}

int perlaC(int k) {
    if(c[k]==1&&c[k+1]==2) return k+2;
    if(c[k]==2) return k;
    if(c[k]==3) return perlaC(perlaB(k+1));
    return 0;
}

int main() {

    fscanf(f,"%d",&n);
    for(k=1;k<=n;k++) {
        fscanf(f,"%d",&l);
        for(i=1;i<=l;i++) fscanf(f,"%d",&c[i]);
        if(l==1||perlaB(1)==l||perlaC(1)==l) fprintf(g,"%d\n",1);
        else fprintf(g,"%d\n",0);
    }

    fclose(f); fclose(g);

    return 0;
}