Cod sursa(job #1236740)

Utilizator ErikHEErik Henning ErikHE Data 2 octombrie 2014 15:58:11
Problema Perle Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f ("perle.in");
ofstream g ("perle.out");

int n, l;
int s[10003];
int B(int i);
int C(int i);

int B (int i) {
    if (i > l)
        return 0;
    if (s[i] == 2)
    return B (i + 1);
    if (s[i] == 1 && s[i + 2] == 3)
    return C (i + 4);
}


int C (int i) {
    if (i > l)
        return 0;
    if (s[i] == 2)
    return i;
    if (s[i] == 3) {
        int x = B (i + 1);
        if (x)
        return C (x + 1);
    }
    else if (s[i] == 1 && s[i + 1] == 2)
    return i + 2;
}

void rezolva () {
    f >> n;
    for (int i = 1; i <= n; i++) {
        f >> l;
        for (int j = 1; j <= l; j++) f >> s[j];
        if (l == 1) g << "1\n";
        else if (B (1) == l || C (1) == l) g <<"1\n";
        else g << "0\n";
    }
}


int main () {
    rezolva ();
    return 0;
}