Cod sursa(job #1362733)

Utilizator MaarcellKurt Godel Maarcell Data 26 februarie 2015 15:04:49
Problema Perle Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>
using namespace std;

int N,a[10001],T,p;

void solve_b(int x);
void solve_c(int x);

void solve_b(int x){
    if (a[x]==2){ p++; solve_b(p); }
    else if (a[x]==1 && a[x+2]==3) { p+=4; solve_c(p); }
    else p=0;
}

void solve_c(int x){
    if (x>N) p=0;
    if (a[x]==2) p++;
    if (a[x]==1 && a[x+1]==2) p+=3;
    if (a[x]==3){ p++; solve_b(p); solve_c(p); }

}

int main(){
    ifstream fin("perle.in");
    ofstream fout("perle.out");
    fin >> T;

    int i;
    while (T--){
        fin >> N;
        for (i=1; i<=N; i++) fin >> a[i];
        if (N==1) { fout << "1\n"; continue; }
        p=1; solve_b(1); if (p==N+1) { fout << "1\n"; continue; }
        p=1; solve_c(1); if (p==N+1) { fout << "1\n"; continue; }

        fout << "0\n";
    }

    return 0;
}