#include "minerals.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define endl '\n'
#define fi first
#define se second
#define pb push_back
void devide(ll n, vector<ll> x, vector<ll> y) {
// cout << n << endl;
if (n == 1) {
// cout << x[0] << ' ' << y[0] << endl;
Answer(x[0], y[0]);
return;
}
vector<ll> a, b, c, d;
for (ll i = 0; i < n / 2; ++i) {
Query(x[i]);
a.pb(x[i]);
}
for (ll i = n / 2; i < n; ++i)
b.pb(x[i]);
// cout << "A" << endl;
// for (ll i = 0; i < n / 2; ++i)
// cout << a[i] << ' ';
// cout << endl;
// cout << "B" << endl;
// for (ll i = 0; i < n / 2; ++i)
// cout << b[i] << ' ';
// cout << endl;
for (ll i = 0; i < n; ++i) {
ll curr = Query(y[i]);
if (curr == n / 2)
c.pb(y[i]);
else
d.pb(y[i]);
Query(y[i]);
}
// cout << "C" << endl;
// for (ll i = 0; i < n / 2; ++i)
// cout << c[i] << ' ';
// cout << endl;
// cout << "D" << endl;
// for (ll i = 0; i < n / 2; ++i)
// cout << d[i] << ' ';
// cout << endl;
for (ll i = 0; i < n/2; ++i)
Query(a[i]);
devide(n / 2, a, c);
devide(n - n / 2, b, d);
}
void Solve(int n) {
vector<ll> x, y;
ll curr, prev = 0;
for (ll i = 1; i <= 2 * n; ++i) {
curr = Query(i);
if (curr == prev) {
y.pb(i);
Query(i);
} else {
x.pb(i);
prev = curr;
}
}
for (ll i = 0; i < n; ++i) {
Query(x[i]);
}
devide(n, x, y);
}
# | 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... |