using System;
using System.Text;
// a = AAAAA -> 00000 -> 0
// b = AAAAB -> 00001 -> 1
// c = AAABA -> 00010 -> 2
// d = AAABB -> 00011 -> 3
// e = AABAA -> 00100 -> 4
// f = AABAB -> 00101 -> 5
// g = AABBA -> 00110 -> 6
class Program
{
// Convert integer n (0–31) into 5-letter A/B code
static string toAB(int n)
{
StringBuilder outStr = new StringBuilder();
for (int i = 4; i >= 0; i--) {
int bit = (n >> i) & 1; // extract bit
outStr.Append(bit == 1 ? 'B' : 'A');
}
return outStr.ToString();
}
static void Main()
{
for (char ch = 'a'; ch <= 'z'; ch++) {
int value = ch - 'a'; // a=0, b=1, c=2...
string code = toAB(value);
Console.WriteLine(ch + " -> " + value + " -> " + code);
}
}
}
/*
run:
a -> 0 -> AAAAA
b -> 1 -> AAAAB
c -> 2 -> AAABA
d -> 3 -> AAABB
e -> 4 -> AABAA
f -> 5 -> AABAB
g -> 6 -> AABBA
h -> 7 -> AABBB
i -> 8 -> ABAAA
j -> 9 -> ABAAB
k -> 10 -> ABABA
l -> 11 -> ABABB
m -> 12 -> ABBAA
n -> 13 -> ABBAB
o -> 14 -> ABBBA
p -> 15 -> ABBBB
q -> 16 -> BAAAA
r -> 17 -> BAAAB
s -> 18 -> BAABA
t -> 19 -> BAABB
u -> 20 -> BABAA
v -> 21 -> BABAB
w -> 22 -> BABBA
x -> 23 -> BABBB
y -> 24 -> BBAAA
z -> 25 -> BBAAB
*/