This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "minerals.h"
#include<bits/stdc++.h>
using namespace std;
vector<int> vl, vr;
void find_out(vector<int> &x, vector<int> &y, bool x_in, bool y_in){
    if(x.size()==1){
        Answer(x[0],y[0]);
        return;
    }
    vector<int> x1, x2, y1, y2;
    int v=0;
    for(int i=0;i<x.size();i++){
        if(i<x.size()/2) x1.push_back(x[i]);
        else x2.push_back(x[i]);
    }
    if(x_in){
        for(int i=x.size()/2;i<x.size();i++){
            v=Query(x[i]);
        }
    } else{
        for(int i=0;i<x.size()/2;i++){
            v=Query(x[i]);
        }
    }
    if(y_in){
        for(int i=0;i<y.size();i++){
            int tmp=Query(y[i]);
            if(tmp==v){
                y1.push_back(y[i]);
            } else{
                y2.push_back(y[i]);
                v--;
            }
        }
    } else{
        for(int i=0;i<y.size();i++){
            int tmp=Query(y[i]);
            if(tmp==v){
                y1.push_back(y[i]);
            } else{
                y2.push_back(y[i]);
                v++;
            }
        }
    }
    find_out(x1,y1,1,!y_in);
    find_out(x2,y2,0,!y_in);
}
void Solve(int N) {
    int v=0;
    for(int i=1;i<=2*N;i++){
        int tmp=Query(i);
        if(tmp==v+1){
            v++;
            vl.push_back(i);
        } else{
            vr.push_back(i);
        }
    }
    find_out(vl,vr,1,1);
}
Compilation message (stderr)
minerals.cpp: In function 'void find_out(std::vector<int>&, std::vector<int>&, bool, bool)':
minerals.cpp:12:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   12 |     for(int i=0;i<x.size();i++){
      |                 ~^~~~~~~~~
minerals.cpp:13:13: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   13 |         if(i<x.size()/2) x1.push_back(x[i]);
      |            ~^~~~~~~~~~~
minerals.cpp:17:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 |         for(int i=x.size()/2;i<x.size();i++){
      |                              ~^~~~~~~~~
minerals.cpp:21:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   21 |         for(int i=0;i<x.size()/2;i++){
      |                     ~^~~~~~~~~~~
minerals.cpp:26:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   26 |         for(int i=0;i<y.size();i++){
      |                     ~^~~~~~~~~
minerals.cpp:36:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   36 |         for(int i=0;i<y.size();i++){
      |                     ~^~~~~~~~~| # | 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... |