#include<bits/stdc++.h>
using namespace std;
void solve1(int n, int k) {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
if(n-k <= k) {
for(int i=1; i<=k; i++) {
cout << 'A';
}
for(int i=k+1; i<=n; i++) {
cout << 'P';
}
cout << endl;
return;
}
if(k==1) {
cout << "NIE" << endl;
return;
}
int ile=-1;
for(int i=0; i<=n; i++) {
if(i*2 + 1 > k) {
break;
}
if(i*2 + 1 == k) {
if((n-i*2 + 1)/2 > k) {
break;
}
ile=i;
break;
}
if(n-(i*2)>=k && (n-(i*2) - k) <= k) {
ile=i;
break;
}
}
int ileA, ileP;
string wyn="";
if(ile==-1) {
if((k-1)%2==0 or k==2) {
cout << "NIE" << endl;
return;
}
if((n-(k-1)+1)/2 > k) {
cout << "NIE" << endl;
return;
}
ileA = (n-(k-1)+1)/2;
ileP = n - (k-1) - ileA;
for(int i=1; i<=ileA; i++) {
wyn+='A';
}
wyn+="PAA";
for(int i=1; i<=(k-4)/2; i++) {
wyn+="PA";
}
for(int i=1; i<=ileP; i++) {
wyn+='P';
}
cout << wyn << endl;
return;
}
//cout << "ILE = " << ile << '\n';
if(ile*2 + 1 == k) {
ileA = (n-(ile*2) + 1)/2;
ileP = n-(ile*2) - ileA;
}
else {
ileA = k;
ileP = n - k - (ile*2);
}
for(int i=1; i<=ileA; i++) {
wyn+='A';
}
for(int i=1; i<=ile; i++) {
wyn+="PA";
}
for(int i=1; i<=ileP; i++) {
wyn+='P';
}
cout << wyn << endl;
}
char CH[10];
void solve2(int n, int k) {
string wyn="";
for(int i=1; i<=k; i++) {
wyn+='A';
}
wyn+="PA";
CH[0]='P';
CH[1]='P';
CH[2]='A';
CH[3]='A';
CH[4]='P';
CH[5]='A';
int dl=wyn.size();
for(int i=dl+1; i<=n; i++) {
wyn+=CH[(i-dl-1)%6];
}
cout << wyn << endl;
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int t;
int n, k;
cin >> t;
while(t--) {
cin >> n >> k;
if(k<=3 or (n-k)<=k) {
solve1(n, k);
}
else {
solve2(n, k);
}
}
}
/*
*/
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 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | #include<bits/stdc++.h> using namespace std; void solve1(int n, int k) { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); if(n-k <= k) { for(int i=1; i<=k; i++) { cout << 'A'; } for(int i=k+1; i<=n; i++) { cout << 'P'; } cout << endl; return; } if(k==1) { cout << "NIE" << endl; return; } int ile=-1; for(int i=0; i<=n; i++) { if(i*2 + 1 > k) { break; } if(i*2 + 1 == k) { if((n-i*2 + 1)/2 > k) { break; } ile=i; break; } if(n-(i*2)>=k && (n-(i*2) - k) <= k) { ile=i; break; } } int ileA, ileP; string wyn=""; if(ile==-1) { if((k-1)%2==0 or k==2) { cout << "NIE" << endl; return; } if((n-(k-1)+1)/2 > k) { cout << "NIE" << endl; return; } ileA = (n-(k-1)+1)/2; ileP = n - (k-1) - ileA; for(int i=1; i<=ileA; i++) { wyn+='A'; } wyn+="PAA"; for(int i=1; i<=(k-4)/2; i++) { wyn+="PA"; } for(int i=1; i<=ileP; i++) { wyn+='P'; } cout << wyn << endl; return; } //cout << "ILE = " << ile << '\n'; if(ile*2 + 1 == k) { ileA = (n-(ile*2) + 1)/2; ileP = n-(ile*2) - ileA; } else { ileA = k; ileP = n - k - (ile*2); } for(int i=1; i<=ileA; i++) { wyn+='A'; } for(int i=1; i<=ile; i++) { wyn+="PA"; } for(int i=1; i<=ileP; i++) { wyn+='P'; } cout << wyn << endl; } char CH[10]; void solve2(int n, int k) { string wyn=""; for(int i=1; i<=k; i++) { wyn+='A'; } wyn+="PA"; CH[0]='P'; CH[1]='P'; CH[2]='A'; CH[3]='A'; CH[4]='P'; CH[5]='A'; int dl=wyn.size(); for(int i=dl+1; i<=n; i++) { wyn+=CH[(i-dl-1)%6]; } cout << wyn << endl; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int t; int n, k; cin >> t; while(t--) { cin >> n >> k; if(k<=3 or (n-k)<=k) { solve1(n, k); } else { solve2(n, k); } } } /* */ |
English