#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
#define MAX_N 1000006
#ifndef DEB_VAL
#define DEB_VAL 0
#endif
#define DEB if(debug)
#define MP make_pair
#define PB push_back
#define FT first
#define SD second
int debug = DEB_VAL;
int n,k,t;
char slowo[MAX_N];
char pattern[6];
int palindrom(int dl) {
for(int i=dl;i>1;i--) {
for(int j=0;j<dl-i+1;j++) {
bool ok=true;
for(int jj=0;jj<i/2;jj++) {
if(slowo[j+jj]!=slowo[j+i-1-jj]) {
ok=false;
break;
}
}
if(ok) return i;
}
}
return 1;
}
int main() {
scanf("%d", &t);
while(t--) {
scanf("%d %d", &n, &k);
if((n==1 || n==2) && k==1) {
slowo[n]=0;
for(int i=0;i<n;i++) {
slowo[i]=(i%2)==1 ? 'A': 'P';
}
printf("%s\n",slowo);
continue;
}
if(n==2 && k==2) {
printf("AA\n");
continue;
}
if(n==4 && k==2) {
printf("AAPP\n");
continue;
}
if(n==3 && k==2) {
printf("AAP\n");
continue;
}
if(n==3 && k==3) {
printf("AAA\n");
continue;
}
if(n==8 && k==3) {
printf("PPPAPAAA\n");
continue;
}
if(n>8 && k>=4 || (n>=4 && n<=8 && k>=3)) {
slowo[n]=0;
for(int i=0;i<k;i++) {
slowo[i]='A';
}
//PAPPAA
pattern[0]=pattern[2]=pattern[3]='P';
pattern[1]=pattern[4]=pattern[5]='A';
for(int i=k;i<n;i++) {
slowo[i]=pattern[(i-k)%6];
}
DEB printf("%d %d -> %d\n",n,k,palindrom(n));
printf("%s\n",slowo);
} else {
printf("NIE\n");
}
}
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 | #include<cstdio> #include<algorithm> #include<vector> using namespace std; #define MAX_N 1000006 #ifndef DEB_VAL #define DEB_VAL 0 #endif #define DEB if(debug) #define MP make_pair #define PB push_back #define FT first #define SD second int debug = DEB_VAL; int n,k,t; char slowo[MAX_N]; char pattern[6]; int palindrom(int dl) { for(int i=dl;i>1;i--) { for(int j=0;j<dl-i+1;j++) { bool ok=true; for(int jj=0;jj<i/2;jj++) { if(slowo[j+jj]!=slowo[j+i-1-jj]) { ok=false; break; } } if(ok) return i; } } return 1; } int main() { scanf("%d", &t); while(t--) { scanf("%d %d", &n, &k); if((n==1 || n==2) && k==1) { slowo[n]=0; for(int i=0;i<n;i++) { slowo[i]=(i%2)==1 ? 'A': 'P'; } printf("%s\n",slowo); continue; } if(n==2 && k==2) { printf("AA\n"); continue; } if(n==4 && k==2) { printf("AAPP\n"); continue; } if(n==3 && k==2) { printf("AAP\n"); continue; } if(n==3 && k==3) { printf("AAA\n"); continue; } if(n==8 && k==3) { printf("PPPAPAAA\n"); continue; } if(n>8 && k>=4 || (n>=4 && n<=8 && k>=3)) { slowo[n]=0; for(int i=0;i<k;i++) { slowo[i]='A'; } //PAPPAA pattern[0]=pattern[2]=pattern[3]='P'; pattern[1]=pattern[4]=pattern[5]='A'; for(int i=k;i<n;i++) { slowo[i]=pattern[(i-k)%6]; } DEB printf("%d %d -> %d\n",n,k,palindrom(n)); printf("%s\n",slowo); } else { printf("NIE\n"); } } return 0; } |
English