#include "minerals.h"
#include <bits/stdc++.h>
using namespace std;
void Solve(int N) {
    vector <int> a, b;
    int cnt = 0, n = N, m = 2 * n;
    for (int i = 1; i <= m; i++) {
        int tmp = Query(i);
        if (tmp != cnt)
            a.push_back(i);
        else
            b.push_back(i);
        cnt = tmp;
    }
    vector <int> tl(n, -1), tr(n, n - 1), g[n];
    int LG = 0, temp = n;
    while (temp)
        LG++, temp >>= 1;
    for (int phase = 0; phase < LG; phase++) {
        for (int i = 0; i < n; i++)
            g[i].clear();
        for (int i = 0; i < n; i++) {
            if (tl[i] + 1 < tr[i]) {
                g[tl[i] + tr[i] >> 1].push_back(i);
            }
        }
        if (phase & 1) {
            for (int i = 0; i < n; i++) {
                cnt = Query(a[i]);
                for (int j : g[i]) {
                    int tmp = Query(b[j]);
                    if (tmp == cnt) {
                        tr[j] = i;
                    } else {
                        tl[j] = i;
                    }
                    cnt = tmp;
                }
            }
        } else {
            for (int i = n - 1; i >= 0; i--) {
                for (int j : g[i]) {
                    int tmp = Query(b[j]);
                    if (tmp == cnt) {
                        tr[j] = i;
                    } else {
                        tl[j] = i;
                    }
                    cnt = tmp;
                }
                cnt = Query(a[i]);
            }
        }
    }
    for (int i = 0; i < n; i++)
        Answer(a[tr[i]], b[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... |