#include <iostream>
#include <vector>
using namespace std;
long double p;
char c;
bool isPositive(int n, int l, int r){
	string s;
	cout<<"Q ";
	for (int j=1;j<=n;j++) 
		if (j >= l and j <= r) s += '1';
		else s += '0';
	cout<<s<<endl;
	cin>>c;
	return (c == 'P');
}
void solve(int n){
	vector<int> vec(n + 1, 0);
	for (int i=1, lp = n + 1;i<=n;){
		if (lp == i){
			vec[i] = 1;
			i++;
			lp = n + 1;
			continue;
		}
		int b = 31 - __builtin_clz(lp - i);
		if (isPositive(n, i, i + (1<<b) - 1))
			lp = i + (1<<b) - 1;
		else
			i += (1<<b);
	}
	cout<<"A ";
	for (int i=1;i<=n;i++) cout<<vec[i];
	cout<<endl;	
	cin>>c;
	if (c == 'W') exit(0);
}
int main(){
	int n, t;
	cin>>n>>p>>t;
	while (t--)
		solve(n);
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |