Cod sursa(job #398171)

Utilizator Tase_CCapalna Tanase Tase_C Data 18 februarie 2010 05:50:04
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<fstream>
#include<iomanip>
using namespace std;
fstream fin("perle.in",ios::in);
fstream fout("perle.out",ios::out);
int a[10005],n;
int b(int i);
int c(int i);
int check(){
      if(n==1)
      return 1;
    if(n==2)
        return 0;
    if(a[1]==3)
        return c(1);
    if(a[1]==1)
            if(c(1))
           return 1;
    return b(1);
}
int b(int i){
           if(a[i]==2)
        return b(i+1);
    if(a[i]==1 && a[i+2]==3)
        return c(i+4);
    return c(i+1);
}
int c(int i){
    if(a[i]==2 && i==n)return 1;
    if(a[i]==2) return c(i+1);
    if(a[i]==3) return b(i+1);
    if(a[i]==1 && a[i+1]==2 && i+2==n) return 1;
    if(a[i]==1 && a[i+1]==2) return c(i+3);
    return 0;
}
int main(){
    int t;
    fin>>t;
    while(t>0){
        fin>>n;
        for(int i=1;i<=n;i++)
            fin>>a[i];
        fout<<check()<<endl;
        t--;
    }
    return 0;
}