Cod sursa(job #1840695)

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

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

int a[10010],i,k,l,n;

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

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

int perlaC(int k) {
    if(a[k]==1&&a[k+1]==2) return k+2;
    if(a[k]==2) return k;
    if(a[k]==3) return perlaC(perlaB(k+1)+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",&a[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;
}