Cod sursa(job #952666)

Utilizator primulDarie Sergiu primul Data 23 mai 2013 19:42:52
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<cstring>
#include<fstream>
 
using namespace std;
 
int siz, a[100005];
 
int B(int p);
int C(int p);
 
int B(int p){
  if(a[p] == 2){
    return B(p + 1);
  }
  else if(a[p] == 1 && a[p + 2] == 3){
    return C(p + 4);
  }
  return siz + 2;
}
 
int C(int p){
  if(a[p] == 2){
    return p + 1;
  }
  else if(a[p] == 3){
    return C(B(p + 1));
  }
  else if(a[p] == 1 && a[p + 1] == 2){
    return p + 3;
  }
  return siz + 2;
}
 
int main(){
  ifstream in("perle.in");
  ofstream out("perle.out");
 
  int tests;
  in >> tests;
 
  for(int i = 1; i <= tests; ++i){
    in >> siz;
    for(int i = 1; i <= siz; ++i)
      in >> a[i];
    a[siz + 1] = a[siz + 2] = a[siz + 3] = a[siz + 4] = -1;
    if(siz == 1 || B(1) == siz + 1 || C(1) == siz + 1)
      out << "1\n";
    else
      out << "0\n";
  }
 
  return 0;
}