#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define fi first
#define sn second
typedef long long ll;
typedef vector<int> VI;
typedef vector<char> VC;
typedef pair<int, int> PI;
char L[2] = { 'A', 'P' };
const int p_size = 6;
char pattern[p_size] = { 'P', 'A', 'P', 'P', 'A', 'A' };
char pattern2[p_size] = { 'P', 'A', 'P', 'P', 'P', 'A' };
bool case0(int n, int k) {
cout << L[0] << endl;
return true;
}
bool case1(int n, int k) {
int p = (n / 2) + (n % 2);
if (k >= p) {
for (int i = 0; i < k; i++) {
cout << L[0];
}
for (int i = 0; i < n - k; i++) {
cout << L[1];
}
cout << endl;
}
else {
return false;
}
return true;
}
bool case2(int n, int k) {
if (k < 3) {
return false;
}
for (int i = 0; i < k; i++) {
cout << L[0];
}
for (int i = 0; i < n - k; i++) {
cout << pattern2[i % p_size];
}
cout << endl;
return true;
}
bool case3(int n, int k) {
if (k < 4) {
return false;
}
for (int i = 0; i < k; i++) {
cout << L[0];
}
for (int i = 0; i < n - k; i++) {
cout << pattern[i % p_size];
}
cout << endl;
return true;
}
int main() {
int t;
cin >> t;
for (int i = 0; i < t; i++) {
int n, k;
cin >> n >> k;
// cout << n << " " << k << " ";
bool r = false;
if (n == 1) {
r = max(r, case0(n, k));
}
else if (n <= 6) {
r = max(r, case1(n, k));
}
else if (n <= 8 && k <= 3) {
r = max(r, case2(n, k));
}
else {
r = max(r, case3(n, k));
}
if (!r) {
cout << "NIE" << endl;
}
}
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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | #include <bits/stdc++.h> using namespace std; #define pb push_back #define fi first #define sn second typedef long long ll; typedef vector<int> VI; typedef vector<char> VC; typedef pair<int, int> PI; char L[2] = { 'A', 'P' }; const int p_size = 6; char pattern[p_size] = { 'P', 'A', 'P', 'P', 'A', 'A' }; char pattern2[p_size] = { 'P', 'A', 'P', 'P', 'P', 'A' }; bool case0(int n, int k) { cout << L[0] << endl; return true; } bool case1(int n, int k) { int p = (n / 2) + (n % 2); if (k >= p) { for (int i = 0; i < k; i++) { cout << L[0]; } for (int i = 0; i < n - k; i++) { cout << L[1]; } cout << endl; } else { return false; } return true; } bool case2(int n, int k) { if (k < 3) { return false; } for (int i = 0; i < k; i++) { cout << L[0]; } for (int i = 0; i < n - k; i++) { cout << pattern2[i % p_size]; } cout << endl; return true; } bool case3(int n, int k) { if (k < 4) { return false; } for (int i = 0; i < k; i++) { cout << L[0]; } for (int i = 0; i < n - k; i++) { cout << pattern[i % p_size]; } cout << endl; return true; } int main() { int t; cin >> t; for (int i = 0; i < t; i++) { int n, k; cin >> n >> k; // cout << n << " " << k << " "; bool r = false; if (n == 1) { r = max(r, case0(n, k)); } else if (n <= 6) { r = max(r, case1(n, k)); } else if (n <= 8 && k <= 3) { r = max(r, case2(n, k)); } else { r = max(r, case3(n, k)); } if (!r) { cout << "NIE" << endl; } } return 0; } |
English