#include<bits/stdc++.h>
using namespace std;
int sum,n,l;
int dfs(int x,string s){
if(sum==n){
for(int i=0;i<s.size();i++){
printf("%c",s[i]);
if(i%64==63)printf("\n");
else if(i%4==3&&i!=s.size()-1)printf(" ");
}
printf("\n%d\n",s.size());
return 1;
}
sum++;
for(char i='A';i<'A'+l;i++){
if(s.size()<=x)s+=" ";
s[x]=i;
bool ok=1;
for(int j=1;j<=(x+1)/2;j++){
string q=s.substr(x-j+1,j);
string p=s.substr(x-2*j+1,j);
if(q==p){ok=0;break;}
}
if(ok&&dfs(x+1,s))
return 1;
}
return 0;
}
int main(){
while(scanf("%d%d",&n,&l)){
if(n==0&&l==0)break;
sum=0;
dfs(0,"");
}
return 0;
}
UVA 129 Krypton Factor
最新推荐文章于 2023-10-28 00:07:42 发布