Cod sursa(job #1274359)

Utilizator VladTiberiuMihailescu Vlad Tiberiu VladTiberiu Data 23 noiembrie 2014 19:00:16
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#define Mare 10000000
#define Vect 10003
using namespace std;
ifstream f("perle.in");
ofstream g("perle.out");

int n,i,t,a[Vect],j;

int C(int p);

int B(int p){
    if(p > n)
        return Mare;
    if(a[p]==2)
        return B(p+1);
    if(a[p]==1 && a[p+2]==3)
        return C(p+4);
    return Mare;
}
int C(int p){
    if(p > n)
        return Mare;
    if(a[p]==1 && a[p+1]==2)
        return p+2;
    if(a[p]==2)
        return p;
    if(a[p]==3)
        return C(1+B(p+1));
    return Mare;
}
int main()
{
    f >> t;
    for(i = 1; i <= t; i++){
        f >> n;
        for(j = 1; j <= n ; j++)
            f >> a[j];
        if(n==1 || B(1)==n || C(1)==n)
            g<<"1"<<"\n";
        else
            g<<"0"<<"\n";
    }
    return 0;
}