#include <bits/stdc++.h>
#define _ ios_base::sync_with_stdio(0);cin.tie(0);
#define INF 0x3f3f3f3f
#define eps 1e-6
typedef long long LL;
const double pi =
acos(-
1.0);
const long long mod =
1e9 +
2015;
using namespace std;
int N,T;
char s[
105];
int cnt;
bool judge(
int cur)
{
for(
int i =
1;i <= (cur +
1) /
2;i++)
{
bool e =
1;
for(
int j =
0;j < i;j++)
if(s[cur - i - j] != s[cur - j])
{
e =
0;
break;
}
if(e)
return false;
}
return true;
}
void output(
int cur)
{
for(
int i =
0;i <= cur;i++)
{
if(i %
4 ==
0 && i >
0)
{
if(i %
64 ==
0 && i >
0)
putchar(
'\n');
else
putchar(
' ');
}
putchar(s[i]);
}
printf(
"\n%d\n", cur +
1);
}
int dfs(
int cur)
{
for(
int i =
0;i < T;i++)
{
s[cur] =
'A' + i;
if(judge(cur))
{
cnt++;
if(cnt == N)
{
s[cur +
1] =
0;
output(cur);
return 1;
}
if(dfs(cur +
1))
return 1;
}
}
return 0;
}
int main()
{
ios_base::sync_with_stdio(
false);
cin.tie(
0);
int first =
0;
int t =
0;
while(
cin >> N >> T)
{
if(N ==
0 && T ==
0)
break;
cnt =
0;
dfs(
0);
}
return 0;
}
#include <iostream>
#include <string>
using namespace std;
void Sequence(string &
str,
int &n,
int L) {
int nLen =
str.length(), nHalf = (
str.length() +
1) /
2;
for (
char i =
'A', iEnd = L +
'A', m =
1; i < iEnd; ++i) {
str.push_back(i);
for (m =
1; m <= nHalf; ++m) {
if (equal(
str.end() - m,
str.end(),
str.end() - m *
2)) {
m =
0;
break;
}
}
if (m !=
0) {
if (--n ==
0)
return;
Sequence(
str, n, L);
if (n ==
0)
return;
}
str.erase(nLen);
}
}
int main(
void) {
for (
int n, L; cin >> n >> L && n !=
0; ) {
string
str;
Sequence(
str, n, L);
int nLen =
str.length();
for (size_t i =
4; i <
str.length(); i +=
5) {
str.insert(
str.begin() + i, i ==
79 ?
'\n' :
' ');
}
cout <<
str <<
'\n' << nLen << endl;
}
return 0;
}
转载请注明原文地址: https://ju.6miu.com/read-1304698.html