Submission #915124

#TimeUsernameProblemLanguageResultExecution timeMemory
915124duckindogSwapping Cities (APIO20_swap)C++14
Compilation error
0 ms0 KiB
#include<bits/stdc++.h> using namespace std; #include "swap.h" #define int long long const int N = 1e5 + 10; int n, m; vector<pair<int, int>> ad[N]; vector<int> co; void init(int N, int M, vector<int> U, vector<int> V, vector<int> W) { n = N; m = M; for (int i = 0; i < m; ++i) { int u = U[i], v = V[i], w = W[i]; co.push_back(w); ad[u].push_back({v, w}); ad[v].push_back({u, w}); } sort(co.begin(), co.end()); co.resize(unique(co.begin(), co.end()) - co.begin()); } bool dd[N]; int special; bool dfs1(int u, int pre, int cw) { if (u == special) return 1; bool ret = 0; for (auto duck : ad[u]) { int v, w; tie(v, w) = duck; if (v == pre || w > cw) continue; if (!dd[v]) { dd[v] = 1; ret |= dfs1(v, u, cw); } } return ret; } bool dfs2(int u, int pre, int cw) { int cnt = bool(pre); bool ret = 0; map<int, int> d; for (auto duck : ad[u]) { int v, w; tie(v, w) = duck; if (v == pre || w > cw) continue; if (dd[v] && !d[v]) return 1; if (!dd[v]) { d[v] = 1; dd[v] = 1; cnt += 1; ret |= dfs2(v, u, cw); } } return (cnt > 2 || ret); } int getMinimumFuelCapacity(int X, int Y) { int l = 0, r = co.size() - 1; int answer = -1; special = Y; while (l <= r) { int mid = l + r >> 1; bool ret = 1; memset(dd, 0, sizeof dd); ret &= dfs1(X, 0, co[mid]); memset(dd, 0, sizeof dd); ret &= dfs2(X, 0, co[mid]); if (ret) r = mid - 1, answer = co[mid]; else l = mid + 1; } return answer; }

Compilation message (stderr)

swap.cpp: In function 'long long int getMinimumFuelCapacity(long long int, long long int)':
swap.cpp:71:17: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   71 |     int mid = l + r >> 1;
      |               ~~^~~
/usr/bin/ld: /tmp/cc7fk0h4.o: in function `main':
grader.cpp:(.text.startup+0x1c3): undefined reference to `init(int, int, std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >)'
/usr/bin/ld: grader.cpp:(.text.startup+0x223): undefined reference to `getMinimumFuelCapacity(int, int)'
collect2: error: ld returned 1 exit status