#include #include #include #include #include #include #include #define BS 14 #define CF 14*14 using namespace std; char mt[BS][BS],viz[26][BS][BS]; const char dx[] = {0,1,0,-1}; const char dy[] = {1,0,-1,0}; int steps; void pm(char v[BS][BS]) { for(int i=0; i=0 && b>=0 && a pos; for(int c=0; c<6; ++c) if(c!=fc){ char cpv[BS][BS]; memcpy(cpv,viz,sizeof(cpv)); viz_col(c,viz); if(d_area(viz,cpv)) { int aux; int nrc=chose_color_rec(niv-1,aux,-1,viz); if(nrc cls; void mutate(int fp) { //cout<<"Mutate "<=fp) cls.pop_back(); cls.push_back(choose_and_visit(viz[fp],fb,fp-1)); //pm(viz[fp]); for(int i=fp+1; i<=25 && !done(viz[i-1]); ++i) { memset(viz[i],0,sizeof(viz[i])); memcpy(viz[i],viz[i-1],sizeof(viz[i])); int c=choose_and_visit(viz[i],-1,i-1); //pm(viz[i]); cls.push_back(c); } //for(int i=0; i>mt[i]; for(int j=0; j