Submission #1302993

#TimeUsernameProblemLanguageResultExecution timeMemory
1302993eraliRace (IOI11_race)C++20
Compilation error
0 ms0 KiB
/* ███████╗██████╗ █████╗ ██╔════╝██╔══██╗██╔══██╗ ███████╗██████╔╝███████║ --- incredible ██╔════╝██╔═══╝ ██╔══██║ ███████╗██║ ██║ ██║ ╚══════╝╚═╝ ╚═╝ ╚═╝ problem:A contest:DIV-3 */ #include<bits/stdc++.h> #pragma GCC target("avx2") #pragma GCC optimize("O3") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") #define int ll #define sz() size() #define all(v) (v).begin(),(v).end() #define F first #define S second #define pb push_back #define popb pop_back #define ss sort #define rr reverse #define pii pair <int, int> #define pll pair <ll, ll> using namespace std; using ld = long double; using ll = long long; const int N = 2e5+10; const ll inf = 1e18; const int Mod = 1e9+7; int n, k, uu[N], vv[N]; int sz[N]; int bc[N]; vector <int> eul; int tin[N], tout[N]; vector <int> g[N]; int dep[N], dep1[N]; int col; int ans[N]; map <pii, int> rib; map <int, int> cnt; map <int, int> mp; int mn = inf; void calc(int v, int p) { eul.pb(v); tin[v] = eul.sz()-1; for (auto to : g[v]) { if (to != p) { dep[to] = dep[v] + rib[{v, to}]; dep1[to] = dep1[v] + 1; calc(to, v); sz[v] += sz[to]; if (sz[bc[v]] < sz[to]) { bc[v] = to; } } } tout[v] = eul.sz()-1; } void add(int v, int p) { cnt[dep[v]] ++; mp[dep[v]] = min(mp[dep[v]], dep1[v] - dep1[p] + 1); } void calc_col(int v, int to) { if (k - (dep[to] - dep[v]) > 0) { if (cnt[dep[v] + (k - (dep[to] - dep[v]))] > 0) { mn = min(mn, mp[dep[v] + (k - (dep[to] - dep[v]))] + (dep1[to] - dep1[v])); // if (mn == 0) cout << v << ' ' << to << ' ' << mp[dep[v] + (k - (dep[to] - dep[v]))] << '\n'; } } } void dfs(int v, int p, int keep) { for (auto to : g[v]) { if (to == p || to == bc[v]) continue; dfs(to, v, 0); } if (bc[v]) { dfs(bc[v], v, 1); } for (auto to : g[v]) { if (to == p || to == bc[v]) continue; for (int i = tin[to]; i <= tout[to]; ++i) { calc_col(v, eul[i]); } for (int i = tin[to]; i <= tout[to]; ++i) { add(eul[i], to); } } calc_col(v, v); add(v, p); ans[v] = mn; if (!keep) { cnt[dep[v]] = 0; for (int i = tin[v]; i <= tout[v]; ++i) { cnt[dep[eul[i]]] = 0; } for (int i = 0; i <= 30; ++i) mp[i] = inf; } } void Erali_is_the_best() { cin >> n >> k; sz[n] = 1; for (int i = 0; i <= 30; ++i) mp[i] = inf; for (int i = 1; i < n; ++i) { cin >> uu[i] >> vv[i]; uu[i] ++, vv[i] ++; g[uu[i]].pb(vv[i]); g[vv[i]].pb(uu[i]); sz[i] = 1; } for (int i = 1, w; i < n; ++i) { cin >> w; rib[{uu[i], vv[i]}] = w; rib[{vv[i], uu[i]}] = w; } calc(1, 0); dfs(1, 0, 0); cout << (ans[1] == inf ? -1 : ans[1]) << '\n'; } signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); // freopen("stdin.in","r",stdin); // freopen("stdin.out","w",stdout); int tt = 1; // cin >> tt; for (int test = 1; test <= tt; ++test) { Erali_is_the_best(); } }

Compilation message (stderr)

/usr/bin/ld: /tmp/ccZOcntr.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccbsBcBA.o:race.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/ccZOcntr.o: in function `main':
grader.cpp:(.text.startup+0x28): undefined reference to `best_path(int, int, int (*) [2], int*)'
collect2: error: ld returned 1 exit status