#include "roads.h"
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100'000 + 10;
const long long MAX = 1'000'000'000'000'000;
int n;
vector<pair<int, int>> ad[MAXN];
long long parW[MAXN];
int k;
long long f[MAXN][2];
void dfs(int u, int p = -1) { 
	for (const auto& [v, w] : ad[u]) { 
		if (v == p) continue;
		parW[v] = w;
		dfs(v, u);
	}
	long long sum = 0;
	vector<long long> best;
	for (const auto& [v, w] : ad[u]) { 
		if (v == p) continue;
		sum += min(f[v][0], f[v][1]);
		best.push_back(f[v][1] - min(f[v][0], f[v][1]));
	}
	sort(best.begin(), best.end());
	int cnt = ad[u].size() - k;
	if (cnt <= (int)best.size()) { 
		f[u][0] = sum + accumulate(best.begin(), best.begin() + max(0, cnt), 0ll);
		f[u][1] = sum + accumulate(best.begin(), best.begin() + max(0, cnt - 1), 0ll) + parW[u];
	} else { 
		f[u][0] = MAX;
		f[u][1] = sum + accumulate(best.begin(), best.end(), 0ll) + parW[u];
	}
}
std::vector<long long> minimum_closure_costs(int N, std::vector<int> U,
                                             std::vector<int> V,
                                             std::vector<int> W) {
  	n = N;
  	for (int i = 0; i < n - 1; ++i) { 
		int u = U[i], v = V[i], w = W[i];
		ad[u].push_back({v, w});
		ad[v].push_back({u, w});
  	}
	parW[0] = MAX;
	vector<long long> ret;
	for (k = 0; k < n; ++k) { 
		for (int i = 0; i < n; ++i) f[i][0] = f[i][1] = MAX;
		dfs(0);
		ret.push_back(f[0][0]);
	}
  	return ret;
}
| # | 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... |