Submission #1175744

#TimeUsernameProblemLanguageResultExecution timeMemory
1175744MuhammetSwapping Cities (APIO20_swap)C++17
Compilation error
0 ms0 KiB
#include "bits/stdc++.h" #include "swap.h" #include "grader.cpp" using namespace std; const int N = 3e5 + 5; int p[N], a[N], c[N], h[N], par[N], sp[N][30]; vector <int> v[N]; int fnd(int x) { if(p[x] == x) return x; return p[x] = fnd(p[x]); } void dfs(int x, int y) { h[x] = h[y] + 1; par[x] = y; for(auto i : v[x]) { dfs(i, x); } } int lca(int x, int y) { if(h[x] < h[y]) swap(x, y); for(int i = 29; i >= 0; i--) { if(h[sp[x][i]] >= h[y]) x = sp[x][i]; } if(x == y) return x; for(int i = 29; i >= 0; i--) { if(sp[x][i] != sp[y][i]) x = sp[x][i], y = sp[y][i]; } return par[x]; } void init(int n, int m, vector<int> U1, vector<int> U2, vector<int> W) { vector <pair <int, pair <int, int>>> v1; for(int i = 0; i < m; i++) { v1.push_back({W[i], {U1[i], U2[i]}}); } sort(v1.begin(), v1.end()); for(int i = 0; i <= n + m; i++) { p[i] = i; } int u3 = n-1; for(auto [w, u] : v1) { auto [u1, u2] = u; u1 = fnd(u1), u2 = fnd(u2); u3++; p[u1] = p[u2] = u3; c[u3] = w; if(u1 != u2) { if(a[u1] or a[u2]) a[u3] = true; v[u3].push_back(u1); v[u3].push_back(u2); } else { a[u3] = true; v[u3].push_back(u1); } } dfs(u3, 0); for(int i = 0; i < n + m; i++) { sp[i][0] = par[i]; } for(int j = 1; j < 30; j++) { for(int i = 0; i < n + m; i++) { sp[i][j] = sp[sp[i][j-1]][j-1]; } } a[0] = 1; return; } int getMinimumFuelCapacity(int x, int y) { int z = lca(x, y); if(a[z]) return c[z]; for(int i = 29; i >= 0; i--) { if(!a[sp[z][i]]) z = sp[z][i]; } if(a[par[z]] and par[z]) return c[par[z]]; return -1; }

Compilation message (stderr)

/usr/bin/ld: /tmp/cckPgM9L.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccY3grMd.o:swap.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status