#include "minerals.h"
#include <bits/stdc++.h>
using namespace std;
void calc(vector<int> A,vector<int> B){
assert(A.size()==B.size());
int n=A.size();
if(n==1){
Answer(A.back(),B.back());
return;
}
for(int i=0;i<n/2;i++){
Query(A[i]);
}
vector<int> inG,outG;
for(int i=0;i<n;i++){
if(Query(B[i])==n/2)
inG.push_back(B[i]);
else
outG.push_back(B[i]);
Query(B[i]);
}
for(int i=0;i<n/2;i++){
Query(A[i]);
}
vector<int> a1,a2;
for(int i=0;i<n/2;i++){
a1.push_back(A[i]);
}
for(int i=n/2;i<n;i++){
a2.push_back(A[i]);
}
calc(a1,inG);
calc(a2,outG);
}
void Solve(int N) {
vector<int> A,B;
for(int i=1;i<=2*N;i++){
int now = Query(i);
if(A.size()!=now){
A.push_back(i);
}
else{
B.push_back(i);
Query(i);
}
}
for(auto x : A)
Query(x);
calc(A,B);
}
# | 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... |