# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
944274 | nguyentunglam | Minerals (JOI19_minerals) | C++17 | 16 ms | 6928 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "minerals.h"
#include <bits/stdc++.h>
using namespace std;
const int NN = 1e5 + 10;
bool in[NN];
int g[NN], one[NN], ans[NN], l[NN], r[NN];
vector<int> ask[NN];
void Solve(int n) {
int cur = 0;
for(int i = 1, j = 0; i <= 2 * n; i++) {
if (Query(i) > cur) {
g[i] = 1;
in[i] ^= 1;
cur++;
one[++j] = i;
}
else g[i] = 2;
}
for(int i = 1; i <= 2 * n; i++) Query(i);
for(int i = 1; i <= 2 * n; i++) if (g[i] == 2) {
l[i] = 1;
r[i] = n;
}
for(int loop = 1; loop <= 20; loop++) {
bool stop = 1;
for(int i = 1; i <= 2 * n; i++) if (g[i] == 2) {
if (l[i] > r[i]) continue;
stop = 0;
int mid = l[i] + r[i] >> 1;
ask[mid].push_back(i);
}
if (stop) break;
for(int i = 1; i <= n; i++) {
int cur = Query(one[i]);
for(int &j : ask[i]) {
int nxt = Query(j);
if (nxt == cur) {
ans[j] = i;
r[j] = i - 1;
} else l[j] = i + 1;
Query(j);
} ask[i].clear();
}
for(int i = 1; i <= n; i++) Query(one[i]);
}
for(int i = 1; i <= 2 * n; i++) if (g[i] == 2) {
Answer(i, one[ans[i]]);
}
}
Compilation message (stderr)
# | 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... |