2018俄罗斯足球世界杯讨论专区
  • 板块灌水区
  • 楼主LINK_CUT_TREE
  • 当前回复38369
  • 已保存回复38379
  • 发布时间2018/6/17 14:14
  • 上次更新2025/2/8 17:57:24
查看原帖
2018俄罗斯足球世界杯讨论专区
89163
LINK_CUT_TREE楼主2018/6/17 14:14

RT,可以随便吐槽。

管理员提醒:刷屏者禁言。

2018/6/17 14:14
78358
莫子恺2018/11/4 13:07

考古

2018/11/4 13:07
86210
Fellyhosn2018/11/4 21:14

#include #include #include #include

using namespace std;

char id(int x){ return (char)(x+'A'-1); }

int gi(){ char x=getchar(); while(x!='.'&&(x>'Z'||x<'A')) x=getchar(); return x=='.'?0:(int)(x-'A'+1); }

int a[16][16],ti; bool in[15];

int get(){ for(int i=1;i<=10;i++){ for(int j=1;j<=i;j++) if(a[j][i]==0){ return j*100+i; } } }

bool ok(){ for(int o=1;o<=12;o++) if(in[o]==false) return false; return true; }

void init(){ memset(a,-1,sizeof(a)); memset(in,0,sizeof(in)); for(int i=1;i<=10;i++){ for(int j=1;j<=i;j++){ a[j][i]=gi(); in[a[j][i]]=true; } } for(int i=1;i<=10;i++){ for(int j=1;j<=i;j++){ if(a[j][i]==-1) { a[j][i]=0; } } } }

void print(){ for(int i=1;i<=10;i++){ for(int j=1;j<=i;j++){ cout<<id(a[j][i]);
} cout<<endl; } }

void dfs(){ ti++;

if(ti>=3000000){
    printf("No solution");
    exit(0);
}

if(ok()) {
  print();
  exit(0);  
}
  
int zt=get();
int px=zt/100;
int py=zt%10;
if(py==0) py=10;

//A:4cases
if(!in[1]){
    
    if(a[px+1][py]==0&&a[px][py+1]==0){
        a[px][py]=1;
        a[px+1][py]=1;
        a[px][py+1]=1;
        in[1]=true;
         dfs();
        a[px][py]=0;
        a[px+1][py]=0;
        a[px][py+1]=0;
        in[1]=false;
    } 
    
    if(a[px][py+1]==0&&a[px+1][py+1]==0){
    	a[px][py]=1;
        a[px][py+1]=1;
        a[px+1][py+1]=1;
        in[1]=true;
        dfs();
    	a[px][py]=0;
        a[px][py+1]=0;
        a[px+1][py+1]=0;
        in[1]=false;
    } 
    
    if(a[px][py+1]==0&&a[px-1][py+1]==0){
    	a[px][py]=1;
        a[px][py+1]=1;
        a[px-1][py+1]=1;
        in[1]=true;
        dfs();
    	a[px][py]=0;
        a[px][py+1]=0;
        a[px-1][py+1]=0;
        in[1]=false;
    } 
    
    if(a[px+1][py]==0&&a[px+1][py+1]==0){
    	a[px][py]=1;
        a[px+1][py]=1;
        a[px+1][py+1]=1;
        in[1]=true;
        dfs();
        a[px][py]=0;
        a[px+1][py]=0;
        a[px+1][py+1]=0;
        in[1]=false;
    } 
    
}

//B:2cases
if(!in[2]){
    
   if(a[px+1][py]==0&&a[px+2][py]==0&&a[px+3][py]==0){
      a[px][py]=2;
      a[px+1][py]=2;
      a[px+2][py]=2;
      a[px+3][py]=2;
      in[2]=true;
      dfs();
      a[px][py]=0;
      a[px+1][py]=0;
      a[px+2][py]=0;
      a[px+3][py]=0;
      in[2]=false;
   }
   
   if(a[px][py+1]==0&&a[px][py+2]==0&&a[px][py+3]==0){
   	  a[px][py]=2;
      a[px][py+1]=2;
      a[px][py+2]=2;
      a[px][py+3]=2;
      in[2]=true;
      dfs();
   	  a[px][py]=0;
      a[px][py+1]=0;
      a[px][py+2]=0;
      a[px][py+3]=0;
      in[2]=false;
   }
   
}

//C:8cases
if(!in[3]){
    
   if(a[px+1][py]==0&&a[px+2][py]==0&&a[px][py+1]==0){
   	   a[px][py]=3;
       a[px+1][py]=3;
       a[px+2][py]=3;
       a[px][py+1]=3;
       in[3]=true;
       dfs();
   	   a[px][py]=0;
       a[px+1][py]=0;
       a[px+2][py]=0;
       a[px][py+1]=0;
       in[3]=false;
   }
   
   if(a[px+1][py]==0&&a[px+1][py+1]==0&&a[px+1][py+2]==0){
   	   a[px][py]=3;
       a[px+1][py]=3;
       a[px+1][py+1]=3;
       a[px+1][py+2]=3;
       in[3]=true;
       dfs();
       a[px][py]=0;
       a[px+1][py]=0;
       a[px+1][py+1]=0;
       a[px+1][py+2]=0;
       in[3]=false;
   }
   
   if(a[px+1][py]==0&&a[px][py+1]==0&&a[px][py+2]==0) {
   	   a[px][py]=3;
       a[px+1][py]=3;
       a[px][py+1]=3;
       a[px][py+2]=3;
       in[3]=true;
       dfs();
       a[px][py]=0;
       a[px+1][py]=0;
       a[px][py+1]=0;
       a[px][py+2]=0;
       in[3]=false;
   }
   
   if(a[px+1][py]==0&&a[px+2][py]==0&&a[px+2][py+1]==0){
   	   a[px][py]=3;
       a[px+2][py]=3;
       a[px+2][py+1]=3;
       a[px+1][py]=3;
       in[3]=true;
       dfs();
       a[px][py]=0;
       a[px+2][py]=0;
       a[px+2][py+1]=0;
       a[px+1][py]=0;
       in[3]=false;
   }  
   
   if(a[px+1][py+2]==0&&a[px][py+2]==0&&a[px][py+1]==0){
   	   a[px][py]=3;
       a[px+1][py+2]=3;
       a[px][py+2]=3;
       a[px][py+1]=3;
       in[3]=true;
       dfs();
       a[px][py]=0;
       a[px+1][py+2]=0;
       a[px][py+2]=0;
       a[px][py+1]=0;
       in[3]=false;
   }
   
   if(a[px-1][py+2]==0&&a[px][py+1]==0&&a[px][py+2]==0) {
   	   a[px][py]=3;
       a[px-1][py+2]=3;
       a[px][py+1]=3;
       a[px][py+2]=3;
       in[3]=true;
       dfs();
       a[px][py]=0;
       a[px-1][py+2]=0;
       a[px][py+1]=0;
       a[px][py+2]=0;
       in[3]=false;
   }
   
   if(a[px][py+1]==0&&a[px+1][py+1]==0&&a[px+2][py+1]==0){
   	   a[px][py]=3;
       a[px][py+1]=3;
       a[px+1][py+1]=3;
       a[px+2][py+1]=3;
       in[3]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px+1][py+1]=0;
       a[px+2][py+1]=0;
       in[3]=false;
   }
   
   if(a[px][py+1]==0&&a[px-1][py+1]==0&&a[px-2][py+1]==0){
   	   a[px][py]=3;
       a[px][py+1]=3;
       a[px-1][py+1]=3;
       a[px-2][py+1]=3;
       in[3]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px-1][py+1]=0;
       a[px-2][py+1]=0;
       in[3]=false;
   }
   
}

//D:1case
if(!in[4]){
    
    if(a[px][py+1]==0&&a[px+1][py+1]==0&&a[px+1][py]==0){
       a[px][py]=4;
       a[px][py+1]=4;
       a[px+1][py+1]=4;
       a[px+1][py]=4;
       in[4]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px+1][py+1]=0;
       a[px+1][py]=0;
       in[4]=false;
    } 
    
}

//E:4cases
if(!in[5]){
    
  if(a[px+1][py]==0&&a[px+2][py]==0&&a[px][py+1]==0&&a[px][py+2]==0) {
  	   a[px][py]=5;
       a[px+1][py]=5;
       a[px+2][py]=5;
       a[px][py+1]=5;
       a[px][py+2]=5;
       in[5]=true;
       dfs();
       a[px][py]=0;
       a[px+1][py]=0;
       a[px+2][py]=0;
       a[px][py+1]=0;
       a[px][py+2]=0;
       in[5]=false;
  }
  
  if(a[px+1][py]==0&&a[px+2][py]==0&&a[px][py-1]==0&&a[px][py-2]==0) {
  	   a[px][py]=5;
       a[px+1][py]=5;
       a[px+2][py]=5;
       a[px][py-1]=5;
       a[px][py-2]=5;
       in[5]=true;
       dfs();
       a[px][py]=0;
       a[px+1][py]=0;
       a[px+2][py]=0;
       a[px][py-1]=0;
       a[px][py-2]=0;
       in[5]=false;
  }
  
  if(a[px][py+1]==0&&a[px][py+2]==0&&a[px+1][py+2]==0&&a[px+2][py+2]==0){
  	   a[px][py]=5;
       a[px][py+1]=5;
       a[px][py+2]=5;
       a[px+1][py+2]=5;
       a[px+2][py+2]=5;
       in[5]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px][py+2]=0;
       a[px+1][py+2]=0;
       a[px+2][py+2]=0;
       in[5]=false;
  }
  
  if(a[px][py+1]==0&&a[px][py+2]==0&&a[px-1][py+2]==0&&a[px-2][py+2]==0){
  	   a[px][py]=5;
       a[px][py+1]=5;
       a[px][py+2]=5;
       a[px-1][py+2]=5;
       a[px-2][py+2]=5;
       in[5]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px][py+2]=0;
       a[px-1][py+2]=0;
       a[px-2][py+2]=0;
       in[5]=false;
  }
  
}

//F:8cases
if(!in[6]){
    
   if(a[px-1][py+1]==0&&a[px][py+1]==0&&a[px+1][py+1]==0&&a[px+2][py+1]==0){
       a[px][py]=6;
       a[px-1][py+1]=6;
       a[px][py+1]=6;
       a[px+1][py+1]=6;
       a[px+2][py+1]=6;
       in[6]=true;
       dfs();
       a[px][py]=0;
       a[px-1][py+1]=0;
       a[px][py+1]=0;
       a[px+1][py+1]=0;
       a[px+2][py+1]=0;
       in[6]=false;
} 

   if(a[px-1][py+1]==0&&a[px][py+1]==0&&a[px+1][py+1]==0&&a[px-2][py+1]==0) {
	   a[px][py]=6;
       a[px-1][py+1]=6;
       a[px][py+1]=6;
       a[px+1][py+1]=6;
       a[px-2][py+1]=6;
       in[6]=true;
       dfs();
       a[px][py]=0;
       a[px-1][py+1]=0;
       a[px][py+1]=0;
       a[px+1][py+1]=0;
       a[px-2][py+1]=0;
       in[6]=false;
}

   if(a[px+1][py+1]==0&&a[px+1][py]==0&&a[px+2][py]==0&&a[px+3][py]==0) {
	   a[px][py]=6;
       a[px+1][py+1]=6;
       a[px+1][py]=6;
       a[px+2][py]=6;
       a[px+3][py]=6;
       in[6]=true;
       dfs();
       a[px][py]=0;
       a[px+1][py+1]=0;
       a[px+1][py]=0;
       a[px+2][py]=0;
       a[px+3][py]=0;
       in[6]=false;
}

   if(a[px+1][py]==0&&a[px+2][py+1]==0&&a[px+2][py]==0&&a[px+3][py]==0) {
	   a[px][py]=6;
       a[px+1][py]=6;
       a[px+2][py+1]=6;
       a[px+2][py]=6;
       a[px+3][py]=6;
       in[6]=true;
       dfs();
       a[px][py]=0;
       a[px+1][py]=0;
       a[px+2][py+1]=0;
       a[px+2][py]=0;
       a[px+3][py]=0;
       in[6]=false;
}

   if(a[px][py+1]==0&&a[px][py+2]==0&&a[px][py+3]==0&&a[px+1][py+1]==0){
	   a[px][py]=6;
       a[px][py+1]=6;
       a[px][py+2]=6;
       a[px][py+3]=6;
       a[px+1][py+1]=6;
       in[6]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px][py+2]=0;
       a[px][py+3]=0;
       a[px+1][py+1]=0;
       in[6]=false;
} 

   if(a[px][py+1]==0&&a[px][py+2]==0&&a[px][py+3]==0&&a[px-1][py+1]==0) {
	   a[px][py]=6;
       a[px][py+1]=6;
       a[px][py+2]=6;
       a[px][py+3]=6;
       a[px-1][py+1]=6;
       in[6]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px][py+2]=0;
       a[px][py+3]=0;
       a[px-1][py+1]=0;
       in[6]=false;
}

   if(a[px][py+1]==0&&a[px][py+2]==0&&a[px][py+3]==0&&a[px+1][py+2]==0) {
	   a[px][py]=6;
       a[px][py+1]=6;
       a[px][py+2]=6;
       a[px][py+3]=6;
       a[px+1][py+2]=6;
       in[6]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px][py+2]=0;
       a[px][py+3]=0;
       a[px+1][py+2]=0;
       in[6]=false;
}

   if(a[px][py+1]==0&&a[px][py+2]==0&&a[px][py+3]==0&&a[px-1][py+2]==0) {
	   a[px][py]=6;
       a[px][py+1]=6;
       a[px][py+2]=6;
       a[px][py+3]=6;
       a[px-1][py+2]=6;
       in[6]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px][py+2]=0;
       a[px][py+3]=0;
       a[px-1][py+2]=0;
       in[6]=false;
   }
}

//G:4cases
if(!in[7]){
    
   if(a[px][py+1]==0&&a[px+1][py]==0&&a[px+2][py+1]==0&&a[px+2][py]==0) {
   	   a[px][py]=7;
       a[px][py+1]=7;
       a[px+1][py]=7;
       a[px+2][py+1]=7;
       a[px+2][py]=7;
       in[7]=true;
       dfs();
   	   a[px][py]=0;
       a[px][py+1]=0;
       a[px+1][py]=0;
       a[px+2][py+1]=0;
       a[px+2][py]=0;
       in[7]=false;
   }
   
   if(a[px][py+1]==0&&a[px+1][py+1]==0&&a[px+2][py+1]==0&&a[px+2][py]==0) {
   	   a[px][py]=7;
       a[px][py+1]=7;
       a[px+1][py+1]=7;
       a[px+2][py+1]=7;
       a[px+2][py]=7;
       in[7]=true;
       dfs();
   	   a[px][py]=0;
       a[px][py+1]=0;
       a[px+1][py+1]=0;
       a[px+2][py+1]=0;
       a[px+2][py]=0;
       in[7]=false;
   }
   
   if(a[px][py+1]==0&&a[px][py+2]==0&&a[px+1][py+2]==0&&a[px+1][py]==0) {
   	   a[px][py]=7;
       a[px][py+1]=7;
       a[px][py+2]=7;
       a[px+1][py+2]=7;
       a[px+1][py]=7;
       in[7]=true;
       dfs();
   	   a[px][py]=0;
       a[px][py+1]=0;
       a[px][py+2]=0;
       a[px+1][py+2]=0;
       a[px+1][py]=0;
       in[7]=false;
   }
   
   if(a[px+1][py]==0&&a[px+1][py+1]==0&&a[px+1][py+2]==0&&a[px][py+2]==0) {
   	   a[px][py]=7;
       a[px+1][py]=7;
       a[px+1][py+1]=7;
       a[px+1][py+2]=7;
       a[px][py+2]=7;
       in[7]=true;
       dfs();
   	   a[px][py]=0;
       a[px+1][py]=0;
       a[px+1][py+1]=0;
       a[px+1][py+2]=0;
       a[px][py+2]=0;
       in[7]=false;
   }
   
}

//H:8cases
if(!in[8]){
    
if(a[px+1][py]==0&&a[px+1][py+1]==0&&a[px+2][py]==0&&a[px+2][py+1]==0) {
       a[px][py]=8;
       a[px+1][py]=8;
       a[px+1][py+1]=8;
       a[px+2][py]=8;
       a[px+2][py+1]=8;
       in[8]=true;
       dfs();
       a[px][py]=0;
       a[px+1][py]=0;
       a[px+1][py+1]=0;
       a[px+2][py]=0;
       a[px+2][py+1]=0;
       in[8]=false;
}

  if(a[px-1][py+1]==0&&a[px][py+1]==0&&a[px+1][py+1]==0&&a[px+1][py]==0) {
	   a[px][py]=8;
       a[px-1][py+1]=8;
       a[px][py+1]=8;
       a[px+1][py+1]=8;
       a[px+1][py]=8;
       in[8]=true;
       dfs();
       a[px][py]=0;
       a[px-1][py+1]=0;
       a[px][py+1]=0;
       a[px+1][py+1]=0;
       a[px+1][py]=0;
       in[8]=false;
}

  if(a[px][py+1]==0&&a[px+1][py]==0&&a[px+1][py+1]==0&&a[px+2][py+1]==0) {
	   a[px][py]=8;
       a[px+1][py]=8;
       a[px][py+1]=8;
       a[px+1][py+1]=8;
       a[px+2][py+1]=8;
       in[8]=true;
       dfs();
       a[px][py]=0;
       a[px+1][py]=0;
       a[px][py+1]=0;
       a[px+1][py+1]=0;
       a[px+2][py+1]=0;
       in[8]=false;
}

  if(a[px+1][py]==0&&a[px+2][py]==0&&a[px][py+1]==0&&a[px+1][py+1]==0){
	   a[px][py]=8;
       a[px+1][py]=8;
       a[px+2][py]=8;
       a[px][py+1]=8;
       a[px+1][py+1]=8;
       in[8]=true;
       dfs();
       a[px][py]=0;
       a[px+1][py]=0;
       a[px+2][py]=0;
       a[px][py+1]=0;
       a[px+1][py+1]=0;
       in[8]=false;
} 

  if(a[px][py+1]==0&&a[px][py+2]==0&&a[px+1][py+1]==0&&a[px+1][py+2]==0) {
	   a[px][py]=8;
       a[px][py+1]=8;
       a[px][py+2]=8;
       a[px+1][py+1]=8;
       a[px+1][py+2]=8;
       in[8]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px][py+2]=0;
       a[px+1][py+1]=0;
       a[px+1][py+2]=0;
       in[8]=false;
}

  if(a[px][py+1]==0&&a[px][py+2]==0&&a[px-1][py+1]==0&&a[px-1][py+2]==0){
	   a[px][py]=8;
       a[px][py+1]=8;
       a[px][py+2]=8;
       a[px-1][py+1]=8;
       a[px-1][py+2]=8;
       in[8]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px][py+2]=0;
       a[px-1][py+1]=0;
       a[px-1][py+2]=0;
       in[8]=false;
}

  if(a[px][py+1]==0&&a[px][py+2]==0&&a[px+1][py]==0&&a[px+1][py+1]==0) {
	   a[px][py]=8;
       a[px][py+1]=8;
       a[px][py+2]=8;
       a[px+1][py]=8;
       a[px+1][py+1]=8;
       in[8]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px][py+2]=0;
       a[px+1][py]=0;
       a[px+1][py+1]=0;
       in[8]=false;
}

  if(a[px][py+1]==0&&a[px+1][py+2]==0&&a[px+1][py+1]==0&&a[px+1][py]==0){
	   a[px][py]=8;
       a[px][py+1]=8;
       a[px+1][py+2]=8;
       a[px+1][py+1]=8;
       a[px+1][py]=8;
       in[8]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px+1][py+2]=0;
       a[px+1][py+1]=0;
       a[px+1][py]=0;
       in[8]=false;
   } 
}

//I:8cases
if(!in[9]){
    
  if(a[px+1][py]==0&&a[px+2][py]==0&&a[px+2][py+1]==0&&a[px+3][py+1]==0){
       a[px][py]=9;
       a[px+1][py]=9;
       a[px+2][py]=9;
       a[px+2][py+1]=9;
       a[px+3][py+1]=9;
       in[9]=true;
       dfs();
       a[px][py]=0;
       a[px+1][py]=0;
       a[px+2][py]=0;
       a[px+2][py+1]=0;
       a[px+3][py+1]=0;
       in[9]=false;
}

  if(a[px-2][py+1]==0&&a[px-1][py+1]==0&&a[px][py+1]==0&&a[px+1][py]==0) {
	   a[px][py]=9;
       a[px-2][py+1]=9;
       a[px-1][py+1]=9;
       a[px][py+1]=9;
       a[px+1][py]=9;
       in[9]=true;
       dfs();
       a[px][py]=0;
       a[px-2][py+1]=0;
       a[px-1][py+1]=0;
       a[px][py+1]=0;
       a[px+1][py]=0;
       in[9]=false;
}

  if(a[px+1][py]==0&&a[px+1][py+1]==0&&a[px+2][py+1]==0&&a[px+3][py+1]==0){
	   a[px][py]=9;
       a[px+1][py]=9;
       a[px+1][py+1]=9;
       a[px+2][py+1]=9;
       a[px+3][py+1]=9;
       in[9]=true;
       dfs();
       a[px][py]=0;
       a[px+1][py]=0;
       a[px+1][py+1]=0;
       a[px+2][py+1]=0;
       a[px+3][py+1]=0;
       in[9]=false;
} 

  if(a[px][py+1]==0&&a[px-1][py+1]==0&&a[px-2][py+1]==0&&a[px+1][py]==0){
	   a[px][py]=9;
       a[px][py+1]=9;
       a[px-1][py+1]=9;
       a[px-2][py+1]=9;
       a[px+1][py]=9;
       in[9]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px-1][py+1]=0;
       a[px-2][py+1]=0;
       a[px+1][py]=0;
       in[9]=false;
} 

  if(a[px][py+1]==0&&a[px+1][py+1]==0&&a[px+1][py+3]==0&&a[px+1][py+2]==0){
	   a[px][py]=9;
       a[px][py+1]=9;
       a[px+1][py+1]=9;
       a[px+1][py+3]=9;
       a[px+1][py+2]=9;
       in[9]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px+1][py+1]=0;
       a[px+1][py+3]=0;
       a[px+1][py+2]=0;
       in[9]=false;
}

  if(a[px][py+1]==0&&a[px-1][py+1]==0&&a[px-1][py+3]==0&&a[px-1][py+2]==0){
	   a[px][py]=9;
       a[px][py+1]=9;
       a[px-1][py+1]=9;
       a[px-1][py+3]=9;
       a[px-1][py+2]=9;
       in[9]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px-1][py+1]=0;
       a[px-1][py+3]=0;
       a[px-1][py+2]=0;
       in[9]=false;
}

  if(a[px][py+1]==0&&a[px][py+2]==0&&a[px+1][py+2]==0&&a[px+1][py+3]==0) {
	   a[px][py]=9;
       a[px][py+1]=9;
       a[px][py+2]=9;
       a[px+1][py+2]=9;
       a[px+1][py+3]=9;
       in[9]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px][py+2]=0;
       a[px+1][py+2]=0;
       a[px+1][py+3]=0;
       in[9]=false;
}

  if(a[px][py+1]==0&&a[px][py+2]==0&&a[px-1][py+2]==0&&a[px-1][py+3]==0) {
	   a[px][py]=9;
       a[px][py+1]=9;
       a[px][py+2]=9;
       a[px-1][py+2]=9;
       a[px-1][py+3]=9;
       in[9]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px][py+2]=0;
       a[px-1][py+2]=0;
       a[px-1][py+3]=0;
       in[9]=false;
   }
   
}

//J:1case
if(!in[10]){
    
  if(a[px][py+1]==0&&a[px][py+2]==0&&a[px-1][py+1]==0&&a[px+1][py+1]==0) {
       a[px][py]=10;
       a[px][py+1]=10;
       a[px][py+2]=10;
       a[px-1][py+1]=10;
       a[px+1][py+1]=10;
       in[10]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px][py+2]=0;
       a[px-1][py+1]=0;
       a[px+1][py+1]=0;
       in[10]=false;
  }
  
}

//K:4cases
if(!in[11]){
    
  if(a[px][py+1]==0&&a[px+1][py+1]==0&&a[px+1][py+2]==0&&a[px+2][py+2]==0) {
       a[px][py]=11;
       a[px][py+1]=11;
       a[px+1][py+1]=11;
       a[px+1][py+2]=11;
       a[px+2][py+2]=11;
       in[11]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px+1][py+1]=0;
       a[px+1][py+2]=0;
       a[px+2][py+2]=0;
       in[11]=false;
}

  if(a[px][py+1]==0&&a[px-1][py+1]==0&&a[px-1][py+2]==0&&a[px-2][py+2]==0) {
       a[px][py]=11;
       a[px][py+1]=11;
       a[px-1][py+1]=11;
       a[px-1][py+2]=11;
       a[px-2][py+2]=11;
       in[11]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px-1][py+1]=0;
       a[px-1][py+2]=0;
       a[px-2][py+2]=0;
       in[11]=false;
}

  if(a[px+1][py]==0&&a[px+1][py+1]==0&&a[px+2][py+1]==0&&a[px+2][py+2]==0){
	   a[px][py]=11;
       a[px+1][py]=11;
       a[px+1][py+1]=11;
       a[px+2][py+1]=11;
       a[px+2][py+2]=11;
       in[11]=true;
       dfs();
       a[px][py]=0;
       a[px+1][py]=0;
       a[px+1][py+1]=0;
       a[px+2][py+1]=0;
       a[px+2][py+2]=0;
       in[11]=false;
}

  if(a[px+1][py]==0&&a[px][py+1]==0&&a[px-1][py+1]==0&&a[px-1][py+2]==0){
	   a[px][py]=11;
       a[px][py+1]=11;
       a[px+1][py]=11;
       a[px-1][py+1]=11;
       a[px-1][py+2]=11;
       in[11]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px+1][py]=0;
       a[px-1][py+1]=0;
       a[px-1][py+2]=0;
       in[11]=false;
   }
   
}

//L:8cases
if(!in[12]){
    
  if(a[px][py+1]==0&&a[px+1][py]==0&&a[px+2][py]==0&&a[px+3][py]==0) {
       a[px][py]=12;
       a[px][py+1]=12;
       a[px+1][py]=12;
       a[px+2][py]=12;
       a[px+3][py]=12;
       in[12]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px+1][py]=0;
       a[px+2][py]=0;
       a[px+3][py]=0;
       in[12]=false;
}

  if(a[px+3][py+1]==0&&a[px+1][py]==0&&a[px+2][py]==0&&a[px+3][py]==0){
	   a[px][py]=12;
       a[px+3][py+1]=12;
       a[px+1][py]=12;
       a[px+2][py]=12;
       a[px+3][py]=12;
       in[12]=true;
       dfs();
       a[px][py]=0;
       a[px+3][py+1]=0;
       a[px+1][py]=0;
       a[px+2][py]=0;
       a[px+3][py]=0;
       in[12]=false;
} 

  if(a[px][py+1]==0&&a[px+1][py+1]==0&&a[px+2][py+1]==0&&a[px+3][py+1]==0){
	   a[px][py]=12;
       a[px][py+1]=12;
       a[px+1][py+1]=12;
       a[px+2][py+1]=12;
       a[px+3][py+1]=12;
       in[12]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px+1][py+1]=0;
       a[px+2][py+1]=0;
       a[px+3][py+1]=0;
       in[12]=false;
} 

  if(a[px][py+1]==0&&a[px-1][py+1]==0&&a[px-2][py+1]==0&&a[px-3][py+1]==0){
	   a[px][py]=12;
       a[px][py+1]=12;
       a[px-1][py+1]=12;
       a[px-2][py+1]=12;
       a[px-3][py+1]=12;
       in[12]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px-1][py+1]=0;
       a[px-2][py+1]=0;
       a[px-3][py+1]=0;
       in[12]=false;
}

  if(a[px+1][py]==0&&a[px+1][py+1]==0&&a[px+1][py+2]==0&&a[px+1][py+3]==0) {
	   a[px][py]=12;
       a[px+1][py]=12;
       a[px+1][py+1]=12;
       a[px+1][py+2]=12;
       a[px+1][py+3]=12;
       in[12]=true;
       dfs();
       a[px][py]=0;
       a[px+1][py]=0;
       a[px+1][py+1]=0;
       a[px+1][py+2]=0;
       a[px+1][py+3]=0;
       in[12]=false;
}

  if(a[px+1][py]==0&&a[px][py+1]==0&&a[px][py+2]==0&&a[px][py+3]==0){
	   a[px][py]=12;
       a[px][py+1]=12;
       a[px+1][py]=12;
       a[px][py+2]=12;
       a[px][py+3]=12;
       in[12]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px+1][py]=0;
       a[px][py+2]=0;
       a[px][py+3]=0;
       in[12]=false;
} 

  if(a[px][py+1]==0&&a[px][py+2]==0&&a[px][py+3]==0&&a[px+1][py+3]==0) {
	   a[px][py]=12;
       a[px][py+1]=12;
       a[px][py+2]=12;
       a[px][py+3]=12;
       a[px+1][py+3]=12;
       in[12]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px][py+2]=0;
       a[px][py+3]=0;
       a[px+1][py+3]=0;
       in[12]=false;
}

  if(a[px][py+1]==0&&a[px][py+2]==0&&a[px][py+3]==0&&a[px-1][py+3]==0) {
	   a[px][py]=12;
       a[px][py+1]=12;
       a[px][py+2]=12;
       a[px][py+3]=12;
       a[px-1][py+3]=12;
       in[12]=true;
       dfs();
       a[px][py]=0;
       a[px][py+1]=0;
       a[px][py+2]=0;
       a[px][py+3]=0;
       a[px-1][py+3]=0;
       in[12]=false;
   }
   
}

}

void openfile(){ freopen("game.in","r",stdin); freopen("game.out","w",stdout); }

int main(){ //openfile(); init(); dfs(); printf("No solution"); return 0; }

2018/11/4 21:14
55843
ueettttuj2018/11/4 21:22

kaogu

2018/11/4 21:22
107101
Viston2018/11/5 11:35

考古

2018/11/5 11:35
60075
pzc20042018/11/5 12:54

日常考古

2018/11/5 12:54
89800
一座城·守一人2018/11/5 13:57

考咕\Huge{\text{考咕}}

2018/11/5 13:57
112754
小菜鸟1112018/11/5 20:31

考古

2018/11/5 20:31
100151
yazzkl2018/11/5 21:49

@Fellyhosn what?

2018/11/5 21:49
100151
yazzkl2018/11/5 21:49

发这干嘛

2018/11/5 21:49
100151
yazzkl2018/11/5 21:49

考古

2018/11/5 21:49