#include <bits/stdc++.h>
#include "minerals.h"
using namespace std;
const int mxN = 43001;
vector<int> with(2*mxN+1,-1);
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<=N;i++)
A.push_back(i);
for(int i=N+1;i<=2*N;i++)
B.push_back(i);
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... |