Submission
Status:
[PPPPPPPPPP]
Score: 100
User: PakinDioxide
Problemset: รัฐบาล
Language: cpp
Time: 0.016 second
Submitted On: 2025-04-19 19:18:27
/*
author : PakinDioxide
created : 19/04/2025 19:10
task : c2_knb64_rattaban
*/
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int main() {
ios::sync_with_stdio(0), cin.tie(0);
int n, m;
cin >> n >> m;
int par[n+1];
iota(par, par+n+1, 0);
tuple <int, int, int> E[m];
map <pair <int, int>, int> mp;
for (auto &[w, u, v] : E) {
cin >> u >> v >> w;
if (u > v) swap(u, v);
mp[{u, v}] = min(mp[{u, v}], w);
}
sort(E, E+m);
function <int(int)> fi = [&] (int x) {
if (x != par[x]) return par[x] = fi(par[x]);
return x;
};
vector <int> k;
int ans1 = 0, ans2 = INT_MAX;
for (int i = 0; i < m; i++) {
auto &[w, u, v] = E[i];
if (fi(u) != fi(v)) ans1 += w, par[fi(u)] = fi(v), k.emplace_back(i);
}
for (auto &e : k) {
int t = 0, c = 0;
iota(par, par+n+1, 0);
for (int i = 0; i < m; i++) if (i != e) {
auto &[w, u, v] = E[i];
if (fi(u) != fi(v)) t += w, par[fi(u)] = fi(v), c++;
}
if (c == n-1) ans2 = min(ans2, t);
}
cout << ans1 << ' ' << ans2 << '\n';
}