#include <iostream>
#include <string>
using std::string;
// 3
// 2 1
// 4 3
// 10 1
string test(int n, int k) {
if (k > n) return "";
if (k == 1) {
if (n == 1) return "A";
if (n == 2) return "AP";
return "NIE";
}
if (k == 2) {
if (n == 2) return "AA";
if (n == 3) return "AAP";
if (n == 4) return "AAPP";
return "NIE";
}
if (k == 3) {
if (n == 3) return "AAA";
if (n == 4) return "AAAP";
if (n == 5) return "AAAPA";
if (n == 6) return "AAAPAP";
if (n == 7) return "AAAPAPP";
if (n == 8) return "AAAPAPPP";
return "NIE";
}
string s;
s.reserve(n);
for (int i = 0; i < k; ++i) s.push_back('A');
static const char tail[6] = {'P', 'A', 'P', 'P', 'A', 'A'};
for (int i = k; i < n; ++i) {
s.push_back(tail[(i - k) % 6]);
}
return s;
}
int main() {
int ile=0;
std::cin >> ile;
int slowo, palindrom;
while(ile>0){
std::cin >> slowo >> palindrom;
std::cout << test(slowo, palindrom) << std::endl;
ile--;
}
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 | #include <iostream> #include <string> using std::string; // 3 // 2 1 // 4 3 // 10 1 string test(int n, int k) { if (k > n) return ""; if (k == 1) { if (n == 1) return "A"; if (n == 2) return "AP"; return "NIE"; } if (k == 2) { if (n == 2) return "AA"; if (n == 3) return "AAP"; if (n == 4) return "AAPP"; return "NIE"; } if (k == 3) { if (n == 3) return "AAA"; if (n == 4) return "AAAP"; if (n == 5) return "AAAPA"; if (n == 6) return "AAAPAP"; if (n == 7) return "AAAPAPP"; if (n == 8) return "AAAPAPPP"; return "NIE"; } string s; s.reserve(n); for (int i = 0; i < k; ++i) s.push_back('A'); static const char tail[6] = {'P', 'A', 'P', 'P', 'A', 'A'}; for (int i = k; i < n; ++i) { s.push_back(tail[(i - k) % 6]); } return s; } int main() { int ile=0; std::cin >> ile; int slowo, palindrom; while(ile>0){ std::cin >> slowo >> palindrom; std::cout << test(slowo, palindrom) << std::endl; ile--; } return 0; } |
English