#include <bits/stdc++.h>
#define ll long long
#define pi std::pair<int, int>
#define pll std::pair<ll, ll>
#define vi std::vector<int>
#define vll std::vector<ll>
#define vpi std::vector<pi>
#define vpll std::vector<pll>
#define si std::set<int>
void rec(int x, std::vector<bool> &ciag, int k, std::vector<bool> &ans)
{
if (x == ciag.size())
{
int max = 0;
for (int i = 0; i < ciag.size(); i++)
for (int j = i; j < ciag.size(); j++)
{
bool palindrom = true;
for (int k = i; k <= j; k++)
if (ciag[k] != ciag[j - k + i])
palindrom = false;
if (palindrom)
max = std::max(max, j - i + 1);
}
if (max == k)
{
ans = ciag;
}
}
else
{
rec(x + 1, ciag, k, ans);
ciag[x] = !ciag[x];
rec(x + 1, ciag, k, ans);
ciag[x] = !ciag[x];
}
}
void solve()
{
int n, k;
std::cin >> n >> k;
std::vector<bool> ciag(n, 0), ans(n);
if (k > 3) {
vi pattern = {0, 1, 0, 0, 1, 1};
for(int i = 0; i < k; i++)
ans[i] = 1;
for(int i = k; i < n; i++)
ans[i] = pattern[(i - k) % 6];
}
else if ((k == 3 && n < 9) || (k == 2 && n < 5) || (k == 1 && n < 3))
rec(0, ciag, k, ans);
else {
std::cout << "NIE\n";
return;
}
for(int i = 0; i < n; i++)
if(ans[i])
std::cout << 'A';
else
std::cout << 'P';
std::cout << '\n';
}
int main()
{
std::ios_base::sync_with_stdio(0);
std::cin.tie(0);
int t = 1;
std::cin >> t;
while (t--)
{
solve();
}
}
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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | #include <bits/stdc++.h> #define ll long long #define pi std::pair<int, int> #define pll std::pair<ll, ll> #define vi std::vector<int> #define vll std::vector<ll> #define vpi std::vector<pi> #define vpll std::vector<pll> #define si std::set<int> void rec(int x, std::vector<bool> &ciag, int k, std::vector<bool> &ans) { if (x == ciag.size()) { int max = 0; for (int i = 0; i < ciag.size(); i++) for (int j = i; j < ciag.size(); j++) { bool palindrom = true; for (int k = i; k <= j; k++) if (ciag[k] != ciag[j - k + i]) palindrom = false; if (palindrom) max = std::max(max, j - i + 1); } if (max == k) { ans = ciag; } } else { rec(x + 1, ciag, k, ans); ciag[x] = !ciag[x]; rec(x + 1, ciag, k, ans); ciag[x] = !ciag[x]; } } void solve() { int n, k; std::cin >> n >> k; std::vector<bool> ciag(n, 0), ans(n); if (k > 3) { vi pattern = {0, 1, 0, 0, 1, 1}; for(int i = 0; i < k; i++) ans[i] = 1; for(int i = k; i < n; i++) ans[i] = pattern[(i - k) % 6]; } else if ((k == 3 && n < 9) || (k == 2 && n < 5) || (k == 1 && n < 3)) rec(0, ciag, k, ans); else { std::cout << "NIE\n"; return; } for(int i = 0; i < n; i++) if(ans[i]) std::cout << 'A'; else std::cout << 'P'; std::cout << '\n'; } int main() { std::ios_base::sync_with_stdio(0); std::cin.tie(0); int t = 1; std::cin >> t; while (t--) { solve(); } } |
English