Cod sursa(job #1197489)

Utilizator RaulTofanTofan Raul RaulTofan Data 12 iunie 2014 10:31:30
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>
#define DIMN 10005
#define INF 1000000000

using namespace std;

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

int n,q;

int v[DIMN];

int verC (int poz);

int verB (int poz) {
    if (poz > n)
        return INF;
    if (v[poz] == 2)
        return verB (poz+1);
    if (v[poz] == 1 && v[poz+2] == 3)
        return verC (poz+4);
    return INF;
}

int verC (int poz) {
    if (poz > n)
        return INF;
    if (v[poz] == 1 && v[poz+1] == 2)
        return poz+2;
    if (v[poz] == 2)
        return poz;
    if (v[poz] == 3)
        return verC (1 + verB(poz+1));
    return INF;
}

int main() {
    f >> q;
    while (q--) {
        f >> n;
        for (int i=1; i<=n; ++i) {
            f >> v[i];
        }
        if (n == 1) {
            g << "1\n";
            continue;
        }
        if (verB (1) == n || verC (1) == n)
            g<<"1\n";
        else
            g<<"0\n";
    }
    f.close();
    g.close();
    return 0;
}