# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
258753 | atoiz | Swap (BOI16_swap) | C++14 | 60 ms | 5264 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 <iostream>
#include <vector>
#include <algorithm>
#include <cassert>
using namespace std;
const int MAXN = 200007;
int N, A[MAXN * 2], B[MAXN];
int getMin(int i)
{
if (B[i] == 0) return A[i];
int ans;
if ((i & 1)) {
if (B[i ^ 1] == 1) ans = A[i ^ 1];
else if (B[i ^ 1] == -1) ans = min(A[i ^ 1], getMin(i >> 1));
else ans = getMin(i >> 1);
} else {
ans = getMin(i >> 1);
}
if (B[i] == -1) ans = min(ans, A[i]);
return ans;
}
void retrieve(int i, int val)
{
if (B[i] == 0) {
assert(A[i] == val);
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... |