Submission #1242853

#TimeUsernameProblemLanguageResultExecution timeMemory
1242853efishelTowns (IOI15_towns)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using vll = vector <ll>; using ii = pair <ll, ll>; using vii = vector <ii>; const ll MAXN = 120; int dis[MAXN][MAXN]; int getDistance (int i, int j) { return dis[i][j]; } int hubDistance (int N, int sub) { ll n = N; ll u1 = 0, dis1 = 0; for (ll u = 1; u < n; u++) { ll dis = getDistance(0, u); if (dis <= dis1) continue; dis1 = dis; u1 = u; } vll disU1(n, 0), disU2(n, 0); map <ll, vll> mp1, mp2; ll u2 = 0, diam = dis1; mp1[0].push_back(dis1); disU1[0] = dis1; for (ll u = 1; u < n; u++) { if (u == u1) continue; ll dis = getDistance(u1, u); disU1[u] = dis; mp1[dis].push_back(u); if (dis <= diam) continue; diam = dis; u2 = u; } // cerr << u1 << ' ' << u2 << '\n'; disU2[u1] = disU1[u2]; for (ll u = 0; u < n; u++) { if (u == u1 || u == u2) continue; disU2[u] = getDistance(u2, u); } for (ll u = 0; u < n; u++) { ll ext = (disU1[u] - disU2[u] + diam) / 2; mp2[ext].push_back(u); } ll ans = diam; for (auto [d, ve] : mp2) { ans = min(ans, max(d, diam-d)); } bool existsBal = false; ll lhs = 0; for (auto [d, ve] : mp2) { if (ans != max(d, diam-d)) { lhs += ve.size(); continue; } ll rhs = n-lhs-ve.size(); if (lhs > n/2 || rhs > n/2 || ve.size() > n/2) { lhs += ve.size(); continue; } existsBal = true; lhs += ve.size(); } return (existsBal ? ans : -ans); // for (auto [d, ve] : mp2) { // cerr << d << ": "; // for (ll u : ve) cerr << u << ' '; // cerr << '\n'; // } // return 0; } int main () { cin.tie(nullptr) -> sync_with_stdio(false); int n; cin >> n; for (ll i = 0; i < n; i++) for (ll j = 0; j < n; j++) cin >> dis[i][j]; cout << hubDistance(n, -1) << '\n'; return 0; }

Compilation message (stderr)

/usr/bin/ld: /tmp/ccjSgdKf.o: in function `getDistance(int, int)':
grader.c:(.text+0x110): multiple definition of `getDistance(int, int)'; /tmp/cc8t6d7u.o:towns.cpp:(.text+0x60): first defined here
/usr/bin/ld: /tmp/ccjSgdKf.o: in function `main':
grader.c:(.text.startup+0x0): multiple definition of `main'; /tmp/cc8t6d7u.o:towns.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status