# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1161161 | just | Road Closures (APIO21_roads) | C++20 | 2095 ms | 27652 KiB |
#include "bits/stdc++.h"
using namespace std;
#define all(x) (x).begin(), (x).end()
#define int long long
#define vec vector
#define pii pair<int, int>
#define X first
#define Y second
map<tuple<int, int>, int> CACHE;
int dfs(int u, int p, int K, int k, const vec<vec<pii>> &adj) {
if (CACHE.count({u, k})) return CACHE[{u, k}];
vec<pii> vals; vals.reserve(adj[u].size());
for(auto [v, w]: adj[u]) {
if (v == p) continue;
vals.push_back({
dfs(v, u, K, K - 1, adj) + w,
dfs(v, u, K, K, adj)
});
}
sort(all(vals), [](pii a, pii b) {
return a.X - a.Y > b.X - b.Y;
});
int res = 0, l = k;
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |