#include "config.hpp"
#include "treewalk.hpp"
#include "work.hpp"
#include <iostream>

using namespace std;

/*void test_conjecture(){
  uint64_t end=(1L<<n);
  for(size_t u=umin;u<end;++u){
    Skew s(u);
    if(s.test_conjecture()){
      cout<<u<<endl;
      return;
    }
  }
  }*/


int main(int argc,char** argv){
  Semigroup S;
  size_t ng[MAX_GENUS+1];
  init_full_N(S);
  work_on(S,ng);

  /*for(size_t g=0;g<5;++g){
    cout<<"==== "<<g<<" ===="<<endl;
    print_Semigroup_gen(S);
    cout<<" -- "<<endl;
    auto it=generator_iter<CHILDREN>(S);
    ind_t pos=0;
    it.move_next();
    Semigroup Snew=remove_generator(S,it.get_gen(),pos++);
    while(it.move_next()){
      Semigroup T=remove_generator(S,it.get_gen(),pos++);
      print_Semigroup_gen(T);
    }
    S=Snew;
  }
  /*cout<<"**************************"<<endl;
  cout<<"* Skew Circulant - Alone *"<<endl;
  cout<<"**************************"<<endl;
  cout<<" n = "<<n<<endl;
  test_conjecture();*/
}
