#include <bits/stdc++.h>
using namespace std;
bool palindrom(string s){
for(int i=0;i<s.size();i++){
if(s[i] != s[s.size()-i-1]) return false;
}
return true;
}
int check(int mask,int n){
string s;
for(int i=0;i<n;i++){
s += ((1<<i) & mask? "P": "A");
}
reverse(s.begin(),s.end());
int ans=0;
for(int i=0;i<n;i++){
for(int j=i;j<n;j++){
ans = max(ans, (j-i+1) * palindrom(s.substr(i,j-i+1)));
}
}
return ans;
}
int main(){
ios_base::sync_with_stdio(0);
int t; cin >> t;
while(t--){
int n,k; cin >> n >> k;
if(n<13){
string res = "";
for(int mask=1;mask<(1<<n);mask++){
if(check(mask,n) == k){
for(int i=0;i<n;i++){
res += ((1<<i) & mask? "P": "A");
}
reverse(res.begin(),res.end());
break;
}
}
if(res.empty()) res = "NIE";
cout << res << "\n";
}
else{
if(k<4) cout << "NIE\n";
else{
for(int i=1;i<=k;i++) cout << "A";
string s = "PAPPAA";
for(int i=0;i<n-k;i++){
cout << s[i%6];
}
cout << '\n';
}
}
}
}
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 | #include <bits/stdc++.h> using namespace std; bool palindrom(string s){ for(int i=0;i<s.size();i++){ if(s[i] != s[s.size()-i-1]) return false; } return true; } int check(int mask,int n){ string s; for(int i=0;i<n;i++){ s += ((1<<i) & mask? "P": "A"); } reverse(s.begin(),s.end()); int ans=0; for(int i=0;i<n;i++){ for(int j=i;j<n;j++){ ans = max(ans, (j-i+1) * palindrom(s.substr(i,j-i+1))); } } return ans; } int main(){ ios_base::sync_with_stdio(0); int t; cin >> t; while(t--){ int n,k; cin >> n >> k; if(n<13){ string res = ""; for(int mask=1;mask<(1<<n);mask++){ if(check(mask,n) == k){ for(int i=0;i<n;i++){ res += ((1<<i) & mask? "P": "A"); } reverse(res.begin(),res.end()); break; } } if(res.empty()) res = "NIE"; cout << res << "\n"; } else{ if(k<4) cout << "NIE\n"; else{ for(int i=1;i<=k;i++) cout << "A"; string s = "PAPPAA"; for(int i=0;i<n-k;i++){ cout << s[i%6]; } cout << '\n'; } } } } |
English