# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
827485 | 2023-08-16T13:58:30 Z | Kubogi | Parkovi (COCI22_parkovi) | C++17 | 1866 ms | 37476 KB |
// 11 ptt when ? #include <bits/stdc++.h> using namespace std; #define int long long #define fileio(name) if (fopen(name".inp", "r")) freopen(name".inp", "r", stdin), freopen(name".out", "w", stdout) const int maxn = 2e5+4, inf = 1e18; int n, k; vector<pair<int, int> > adj[maxn]; int f[maxn], g[maxn]; bool chosen[maxn]; void dfs(int u, int p, int val, int wp) { for (auto e: adj[u]) { int v = e.first, w = e.second; if (v != p) { dfs(v, u, val, w); f[u] = max(f[u], w + f[v]); g[u] = min(g[u], w + g[v]); } } if (f[u] + g[u] > val) { if (f[u] + wp > val) { chosen[u] = true; f[u] = -inf, g[u] = 0; } } else { f[u] = 0; } } int cnt(int val) { fill(f+1, f+1+n, 0); fill(g+1, g+1+n, inf); fill(chosen+1, chosen+1+n, false); dfs(1, 0, val, -inf); chosen[1] = (g[1] > val); int res = 0; for (int i = 1; i <= n; i++) { res += chosen[i]; } return res; } int32_t main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); fileio("ktree"); // freopen("debug.txt", "w", stderr); cin >> n >> k; for (int i = 1; i < n; i++) { int u, v, w; cin >> u >> v >> w; adj[u].push_back({v, w}); adj[v].push_back({u, w}); } int l = 0, r = 1e15; while (l <= r) { int mid = (l+r)>>1; if (cnt(mid) <= k) r = mid-1; else l = mid+1; } cout << l << "\n"; int x = cnt(l); for (int i = 1; i <= n; i++) { if (chosen[i]) cout << i << " "; else if (x < k) { cout << i << " "; x++; } } return 0 ^ 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 4948 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 385 ms | 36208 KB | Output is correct |
2 | Correct | 425 ms | 37284 KB | Output is correct |
3 | Correct | 361 ms | 19532 KB | Output is correct |
4 | Correct | 1147 ms | 19668 KB | Output is correct |
5 | Correct | 1866 ms | 21352 KB | Output is correct |
6 | Correct | 1786 ms | 21380 KB | Output is correct |
7 | Correct | 1622 ms | 20104 KB | Output is correct |
8 | Correct | 1760 ms | 21012 KB | Output is correct |
9 | Correct | 1709 ms | 21304 KB | Output is correct |
10 | Correct | 1580 ms | 21696 KB | Output is correct |
11 | Incorrect | 999 ms | 23548 KB | Output isn't correct |
12 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 402 ms | 37476 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 4948 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |