#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
vec<int> calc(int n, vec<pii> edges, vec<int> costs) {
bool is_star = true;
for(auto [u, _]: edges) is_star &= u == 0;
if (is_star) {
sort(all(costs));
partial_sum(all(costs), costs.begin());
reverse(all(costs));
costs.push_back(0);
return costs;
}
assert(!is_star);
}
vec<int> minimum_closure_costs(
signed N,
vec<signed> U,
vec<signed> V,
vec<signed> W
) {
vec<pii> edges(N - 1);
vec<int> costs(N - 1);
for (int i = 0; i < N - 1; i++) {
edges[i] = {min(U[i], V[i]), max(U[i], V[i])};
costs[i] = W[i];
}
return calc(N, edges, costs);
}
#ifdef debug
signed main() {
freopen("input.txt", "r", stdin);
int n; cin >> n;
vec<signed> u(n - 1), v(n - 1), w(n -1 );
for (int i = 0; i < n - 1; i++) {
cin >> u[i] >> v[i] >> w[i];
}
vec<int> ans = minimum_closure_costs(n, u, v, w);
for (int i = 0; i < n; i++) {
cout << ans[i] << " ";
}
cout << endl;
}
#endif
컴파일 시 표준 에러 (stderr) 메시지
roads.cpp: In function 'std::vector<long long int> calc(long long int, std::vector<std::pair<long long int, long long int> >, std::vector<long long int>)':
roads.cpp:25:1: warning: control reaches end of non-void function [-Wreturn-type]
25 | }
| ^
# | 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... |