Submission #667931

#TimeUsernameProblemLanguageResultExecution timeMemory
667931bashkortAmusement Park (JOI17_amusement_park)C++17
Compilation error
0 ms0 KiB
#include "Ioi.h" #include <bits/stdc++.h> using namespace std; using ll = long long; long long Ioi(int N, int M, int A[], int B[], int P, int V, int T) { struct DSU { vector<int> p; DSU() = default; DSU(int n) : p(n) { iota(p.begin(), p.end(), 0); } int leader(int x) { while (x != p[x]) x = p[x] = p[p[x]]; return x; } bool unite(int x, int y) { x = leader(x), y = leader(y); if (p[y] == x) { return false; } else { return p[y] = x, true; } } }; mt19937 rnd(228); vector<pair<int, int>> edges(M); for (int i = 0; i < M; ++i) { edges[i] = {A[i], B[i]}; } shuffle(edges.begin(), edges.end(), rnd); vector<int> tin(N), par(N, -1); vector<vector<int>> g(N), adj(N); DSU d(N); for (int i = 0; i < M; ++i) { auto [a, b] = edges[i]; if (d.unite(a, b)) { g[a].push_back(b); g[b].push_back(a); } } int timer = 0; function<void(int)> dfs = [&](int v) { tin[v] = timer++; sort(g[v].begin(), g[v].end()); for (int to : g[v]) { if (to != par[v]) { par[to] = v; adj[v].push_back(to); dfs(to); } } }; dfs(228 % N); int LOG = 60; vector<bool> used(N); vector<int> ans(LOG, -1); ans[tin[P] % LOG] = V; vector<int> last(N, -1); int x = P; while (find(ans.begin(), ans.end(), -1) != ans.end()) { used[x] = true; auto it = upper_bound(adj[x].begin(), adj[x].end(), last[x]); if (it == adj[x].end()) { it = adj[x].begin(); } if (adj[x].empty() || used[*it]) { last[par[x]] = x; x = par[x]; assert(x != -1); ans[tin[x] % LOG] = Move(x); } else { last[x] = *it; x = *it; ans[tin[x] % LOG] = Move(x); } } ll X = 0; for (int i = 0; i < LOG; ++i) { assert(ans[i] != -1); X += ans[i] * (1LL << i); } return X; }

Compilation message (stderr)

Joi.cpp: In function 'long long int Ioi(int, int, int*, int*, int, int, int)':
Joi.cpp:77:33: error: 'Move' was not declared in this scope
   77 |             ans[tin[x] % LOG] = Move(x);
      |                                 ^~~~
Joi.cpp:81:33: error: 'Move' was not declared in this scope
   81 |             ans[tin[x] % LOG] = Move(x);
      |                                 ^~~~

/usr/bin/ld: /tmp/ccDiklrG.o: in function `main':
grader_ioi.cpp:(.text.startup+0x3f2): undefined reference to `Ioi(int, int, int*, int*, int, int, int)'
collect2: error: ld returned 1 exit status