# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
969898 | BestCrazyNoob | Mechanical Doll (IOI18_doll) | C++17 | 127 ms | 16684 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 "doll.h"
#include <vector>
#include <array>
#include <algorithm>
using namespace std;
constexpr int H = 18;
vector<vector<int>> graph;
vector<int> C, X, Y;
int nxt = -1;
array<vector<int>, H> pos;
void create(int curr, int sz, vector<int> v, int root, int h) {
// For local vectors
curr = -1-curr;
if (sz == 2) {
X[curr] = v.size() > 1 ? v[0] : root;
Y[curr] = v.size() > 1 ? v[1] : v[0];
} else {
if (v.size() > sz/2) {
X[curr] = nxt--;
Y[curr] = nxt--;
vector<int> i1(pos[h].end() - v.size(), pos[h].begin() + sz/2), i2(pos[h].begin() + sz/2, pos[h].end()), v1, v2;
sort(i1.begin(), i1.end());
sort(i2.begin(), i2.end());
int i = 0, j = 0, x = 0;
while (i < v1.size() || j < i2.size()) {
if (i < i1.size() && (j == i2.size() || i1[i] < i2[j])) {
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... |