Submission #1137561

#TimeUsernameProblemLanguageResultExecution timeMemory
1137561Jawad_Akbar_JJCOVID tests (CEOI24_covid)C++20
13.02 / 100
1631 ms408 KiB
#include <iostream>
#include <vector>

using namespace std;
long double p;
char c;

bool isPositive(int n, int l, int r){
	string s(n, '0');
	cout<<"Q ";
	for (int j=1;j<=n;j++) 
		if (j >= l and j <= r) s[j-1] = '1';
	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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...