// PA2026, @mjm, r4c-pal
#include <cstdio>
#include <string>
using namespace std;
int nextInt() { int n; scanf("%d", &n); return n; }
string solve(int n, int k) {
if (n <= 8) {
if (1 == n && 1 == k) return "A";
if (2 == n && 1 == k) return "AP";
if (2 == n && 2 == k) return "AA";
if (3 == n && 2 == k) return "AAP";
if (3 == n && 3 == k) return "AAA";
if (4 == n && 2 == k) return "AAPP";
if (4 == n && 3 == k) return "AAAP";
if (4 == n && 4 == k) return "AAAA";
if (5 == n && 3 == k) return "AAAPA";
if (5 == n && 4 == k) return "AAAAP";
if (5 == n && 5 == k) return "AAAAA";
if (6 == n && 3 == k) return "AAAPAP";
if (6 == n && 4 == k) return "AAAAPA";
if (6 == n && 5 == k) return "AAAAAP";
if (6 == n && 6 == k) return "AAAAAA";
if (7 == n && 3 == k) return "AAAPAPP";
if (7 == n && 4 == k) return "AAAAPAP";
if (7 == n && 5 == k) return "AAAAAPA";
if (7 == n && 6 == k) return "AAAAAAP";
if (7 == n && 7 == k) return "AAAAAAA";
if (8 == n && 3 == k) return "AAAPAPPP";
if (8 == n && 4 == k) return "AAAAPAPP";
if (8 == n && 5 == k) return "AAAAAPAA";
if (8 == n && 6 == k) return "AAAAAAPA";
if (8 == n && 7 == k) return "AAAAAAAP";
if (8 == n && 8 == k) return "AAAAAAAA";
return "NIE";
}
if (k < 4) return "NIE";
string res(k, 'A');
res.reserve(n);
while (res.size() < n) {
if (res.size() < n) res.push_back('P');
if (res.size() < n) res.push_back('A');
if (res.size() < n) res.push_back('P');
if (res.size() < n) res.push_back('P');
if (res.size() < n) res.push_back('A');
if (res.size() < n) res.push_back('A');
}
return res;
}
int main() {
int TC = nextInt();
for (int tc = 0; tc < TC; ++tc) {
int n = nextInt();
int k = nextInt();
string res = solve(n, k);
printf("%s\n", res.c_str());
}
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | // PA2026, @mjm, r4c-pal #include <cstdio> #include <string> using namespace std; int nextInt() { int n; scanf("%d", &n); return n; } string solve(int n, int k) { if (n <= 8) { if (1 == n && 1 == k) return "A"; if (2 == n && 1 == k) return "AP"; if (2 == n && 2 == k) return "AA"; if (3 == n && 2 == k) return "AAP"; if (3 == n && 3 == k) return "AAA"; if (4 == n && 2 == k) return "AAPP"; if (4 == n && 3 == k) return "AAAP"; if (4 == n && 4 == k) return "AAAA"; if (5 == n && 3 == k) return "AAAPA"; if (5 == n && 4 == k) return "AAAAP"; if (5 == n && 5 == k) return "AAAAA"; if (6 == n && 3 == k) return "AAAPAP"; if (6 == n && 4 == k) return "AAAAPA"; if (6 == n && 5 == k) return "AAAAAP"; if (6 == n && 6 == k) return "AAAAAA"; if (7 == n && 3 == k) return "AAAPAPP"; if (7 == n && 4 == k) return "AAAAPAP"; if (7 == n && 5 == k) return "AAAAAPA"; if (7 == n && 6 == k) return "AAAAAAP"; if (7 == n && 7 == k) return "AAAAAAA"; if (8 == n && 3 == k) return "AAAPAPPP"; if (8 == n && 4 == k) return "AAAAPAPP"; if (8 == n && 5 == k) return "AAAAAPAA"; if (8 == n && 6 == k) return "AAAAAAPA"; if (8 == n && 7 == k) return "AAAAAAAP"; if (8 == n && 8 == k) return "AAAAAAAA"; return "NIE"; } if (k < 4) return "NIE"; string res(k, 'A'); res.reserve(n); while (res.size() < n) { if (res.size() < n) res.push_back('P'); if (res.size() < n) res.push_back('A'); if (res.size() < n) res.push_back('P'); if (res.size() < n) res.push_back('P'); if (res.size() < n) res.push_back('A'); if (res.size() < n) res.push_back('A'); } return res; } int main() { int TC = nextInt(); for (int tc = 0; tc < TC; ++tc) { int n = nextInt(); int k = nextInt(); string res = solve(n, k); printf("%s\n", res.c_str()); } return 0; } |
English