#include "minerals.h"
#include <bits/stdc++.h>
using namespace std;
#define pii pair<int, int>
#define mp make_pair
#define pb push_back
#define fi first
#define se second
int booga=0, ooga;
bool query(int a){
	ooga=Query(a);
	swap(ooga, booga);
	return (ooga==booga);
}
void dnc(vector<int> a, vector<int> b, bool got){
	if (a.size()==1){
		Answer(a[0], b[0]);
		return;
	}
	int n=a.size(), mid=max(1, got?7*n/10:3*n/10), p=0;
	vector<int> al, bl, ar, br;
	for (int i=0; i<mid; ++i){
		if (!got)query(a[i]);
		al.pb(a[i]);
	}
	for (int i=mid; i<n; ++i){
		if (got)query(a[i]);
		ar.pb(a[i]);
	}
	for (;bl.size()<al.size()&&br.size()<ar.size(); ++p){
		if (query(b[p]))bl.pb(b[p]);
		else br.pb(b[p]);
	}
	while (bl.size()<al.size())bl.pb(b[p]), ++p;
	while (br.size()<ar.size())br.pb(b[p]), ++p;
	dnc(al, bl, 1), dnc(ar, br, 0);
}
void Solve(int n){
	vector<int> a, b;
	for (int i=1; i<=2*n; ++i){
		if (query(i))a.pb(i);
		else b.pb(i);
	}
	dnc(a, b, 1);
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |