Pagini recente » Cod sursa (job #928878) | Cod sursa (job #857749) | Cod sursa (job #2424978) | Cod sursa (job #2831907) | Cod sursa (job #1846899)
#include <bits/stdc++.h>
using namespace std;
ifstream f("apm.in");
ofstream g("apm.out");
int T[200010], n, m, cost, i, x, y, z, k;
pair<int, int> sol[200010];
pair<int, pair<int, int> > E[400010];
int compresie(int x)
{
if(T[x] == x) return x;
T[x] = compresie(T[x]);
return T[x];
}
int main()
{
f >> n >> m;
for(i = 1; i <= n; i++)
T[i] = i;
for(i = 1; i <= m; i++)
{
f >> x >> y >> z;
E[i] = {z, {x, y}};
}
sort(E+1, E+m+1);
for(i = 1; i <= m && k < n-1; i++)
{
x = compresie(E[i].second.first);
y = compresie(E[i].second.second);
if(x == y) continue;
cost += E[i].first;
T[x] = y;
sol[++k] = {x, y};
}
g << cost << '\n' << k << '\n';
for(i = 1; i <= k; i++)
g << sol[i].first << ' ' << sol[i].second << '\n';
return 0;
}