// #include <bits/stdc++.h>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <map>
#include <vector>
#include <iomanip>
#include <string>
#include <queue>
#include <set>
using namespace std;
#define int long long
#define endl "\n";
const int N=2e5+5;
const int M=1e9+7;
int n;
double p;
void solve2()
{
string s,r;
for (int i=0;i<n;i++){
s+='0';
r+='0';
}
for (int i=0;i<n;i++){
s[i]='1';
cout << "Q " << s << endl;
char u;
cin >> u;
if (u=='P'){
r[i]='1';
}
s[i]='0';
}
cout << "A " << r << endl;
char e;
cin >> e;
if (e=='C'){
return;
}
else{
exit(0);
}
}
void solve()
{
string s,w;
for (int i=0;i<n;i++){
s+='0';
w+='2';
}
int co=max((1/p)/3.8,(double)1);
int l=0,r=min(co,n-1);
while (l<n){
for (int i=l;i<=r;i++){
s[i]='1';
}
cout << "Q "+s << endl;
char k;
cin >> k;
int y1=l,y2=r;
if (k=='N'){
for (int i=l;i<=r;i++){
w[i]='0';
}
l=r+1;
r=min(l+co,n-1);
}
else{
if (l!=r){
r=(l+r)/2;
if (l==r){
s[l+1]='0';
cout << "Q "+s << endl;
char k;
cin >> k;
if (k=='N'){
w[l]='0';
w[l+1]='1';
l=r+2;
r=min(l+co,n-1);
}
else{
w[l]='1';
l=r+1;
r=min(l+co,n-1);
}
}
}
else{
w[l]='1';
l=r+1;
r=min(l+co,n-1);
}
}
for (int i=y1;i<=y2;i++){
s[i]='0';
}
}
cout << "A " << w << endl;
char e;
cin >> e;
if (e=='C'){
return;
}
else{
exit(0);
}
}
signed main()
{
cout << fixed<<setprecision(9);
int t=1;
cin >> n >> p >> t;
if (t==1){
solve2();
return 0;
}
for (int _=1;_<=t;_++){
solve();
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |