| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 1226076 | poat | Minerals (JOI19_minerals) | C++17 | 0 ms | 0 KiB | 
#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);
}
