#include <iostream>
#include <vector>
using namespace std;
void wyp(int n)
{
vector<int> tab={1,1,0,1,0,0};
for(int a=tab.size(); a<n; a++)
{
if(tab[a-3]==tab[a-2] && tab[a-1]==tab[a-4] && tab[a-1]==tab[a-3]){
cout<<"DUPA\n";
return;
}
if(tab[a-3]==tab[a-2] && tab[a-1]==tab[a-4]){
tab.push_back((tab[a-5]+1)%2);
continue;
}
if(tab[a-1]==tab[a-3]){
tab.push_back((tab[a-4]+1)%2);
continue;
}
tab.push_back((tab[a-1]+1)%2);
}
for(int i=0; i<n; i++){
if(tab[i]==0)
cout<<"A";
else
cout<<"P";
}
cout<<"\n";
}
void male(int n, int k)
{
int mask, fl, obc;
vector<int> tab;
for(int a=0; a<(1<<n); a++)
{
mask=a;
tab.clear();
for(int i=0; i<n; i++)
{
if((mask&(1<<i))!=0)
tab.push_back(1);
else
tab.push_back(0);
}
obc=0;
for(int i=0; i<n; i++){
for(int j=0; j<=i; j++){
fl=1;
for(int h=0; h<i-j; h++)
if(tab[i-h]!=tab[j+h])
fl=0;
if(fl==1)
obc=max(obc,i-j+1);
}
}
if(obc==k){
for(int i=0; i<n; i++){
if(tab[i]==0)
cout<<"A";
else
cout<<"P";
}
cout<<"\n";
return;
}
}
cout<<"NIE\n";
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int n, m, k;
cin>>n;
for(int a=0; a<n; a++)
{
cin>>m>>k;
if(m<9){
male(m, k);
continue;
}
if(k<4){
cout<<"NIE\n";
continue;
}
for(int i=0; i<k; i++)
cout<<"A";
wyp(m-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 | #include <iostream> #include <vector> using namespace std; void wyp(int n) { vector<int> tab={1,1,0,1,0,0}; for(int a=tab.size(); a<n; a++) { if(tab[a-3]==tab[a-2] && tab[a-1]==tab[a-4] && tab[a-1]==tab[a-3]){ cout<<"DUPA\n"; return; } if(tab[a-3]==tab[a-2] && tab[a-1]==tab[a-4]){ tab.push_back((tab[a-5]+1)%2); continue; } if(tab[a-1]==tab[a-3]){ tab.push_back((tab[a-4]+1)%2); continue; } tab.push_back((tab[a-1]+1)%2); } for(int i=0; i<n; i++){ if(tab[i]==0) cout<<"A"; else cout<<"P"; } cout<<"\n"; } void male(int n, int k) { int mask, fl, obc; vector<int> tab; for(int a=0; a<(1<<n); a++) { mask=a; tab.clear(); for(int i=0; i<n; i++) { if((mask&(1<<i))!=0) tab.push_back(1); else tab.push_back(0); } obc=0; for(int i=0; i<n; i++){ for(int j=0; j<=i; j++){ fl=1; for(int h=0; h<i-j; h++) if(tab[i-h]!=tab[j+h]) fl=0; if(fl==1) obc=max(obc,i-j+1); } } if(obc==k){ for(int i=0; i<n; i++){ if(tab[i]==0) cout<<"A"; else cout<<"P"; } cout<<"\n"; return; } } cout<<"NIE\n"; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n, m, k; cin>>n; for(int a=0; a<n; a++) { cin>>m>>k; if(m<9){ male(m, k); continue; } if(k<4){ cout<<"NIE\n"; continue; } for(int i=0; i<k; i++) cout<<"A"; wyp(m-k); } } |
English