#include <bits/stdc++.h>
#include "minerals.h"
using namespace std;
void Solve(int N){
int total = 2 * N;
vector<int> lo(total + 1, 1), hi(total + 1, total);
vector<int> last_query(total + 1, -1);
bool changed = true;
while (changed) {
changed = false;
unordered_map<int, vector<int>> bucket;
for (int i = 1; i <= total; i++) {
if (lo[i] < hi[i]) {
int mid = lo[i] + (hi[i] - lo[i]) / 2;
bucket[mid].push_back(i);
changed = true;
}
}
for (auto &p : bucket) {
int mid = p.first;
bool response = Query(mid);
for (int idx : p.second) {
if (last_query[idx] == -1) {
last_query[idx] = response;
} else {
if (response == last_query[idx]) {
hi[idx] = mid;
} else {
lo[idx] = mid + 1;
last_query[idx] = response;
}
}
}
}
}
for (int i = 1; i <= total; i++) {
Answer(i, lo[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... |