#include <bits/stdc++.h>
#include "minerals.h"
// #include "grader.cpp"
using namespace std;
void solve(vector<int> vec)
{
  if(vec.empty())
    return;
  if(vec.size() == 2)
  {
    Answer(vec[0], vec[1]);
    return;
  }
  vector<int> a, b;
  for(int i = 0; i < vec.size() / 4; i++)
    a.push_back(vec[i]);
  for(int i = vec.size() / 4; i < vec.size() / 2; i++)
    b.push_back(vec[i]);
  int x;
  for(auto i : a)
    x = Query(i);
  for(int i = vec.size() / 2; i < vec.size(); i++)
  {
    int y = Query(vec[i]);
    if(x == y)
      a.push_back(vec[i]);
    else
      b.push_back(vec[i]);
    y = Query(vec[i]);
    x = y;
  }
  for(auto i : a)
    Query(i);
  solve(a);
  solve(b);
}
void Solve(int N) 
{
  int q = 0;
  vector<int> a, b;
  for(int i = 1; i <= N * 2; i++)
  {
    if(Query(i) > q)
    {
      a.push_back(i);
      q++;
    }
    else
      b.push_back(i);
  }
  for(int i = 1; i <= N * 2; i++)
    Query(i);
  for(auto i : b)
    a.push_back(i);
    solve(a);
}
| # | 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... |