Cod sursa(job #2426409)

Utilizator blotucosmincosmin blotucosmin Data 27 mai 2019 19:33:48
Problema Arbore partial de cost minim Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <bits/stdc++.h>
using namespace std;
struct nod
{
	int i, j, cost;
} v[400001];
bool cmp(const nod a, const nod b)
{
    return (a.cost < b.cost);
}
int s, n, m, i, j, ct, t[200001];
bool viz[400001];

int main()
{
    ifstream f("apm.in");
    ofstream g("apm.out");
    f >> n >> m;
    for(i = 1; i <= m ; i ++)
		f >> v[i].i >> v[i].j >> v[i].cost;
	sort(v + 1, v + m + 1, cmp);
	for(i = 1; i <= n; i ++) t[i] = i;
	for(i = 1; i <= m && ct < n - 1; i ++)
		if(t[v[i].i] != t[v[i].j])
		{
		    ct ++;
			viz[i] = true;
			s = s + v[i].cost;
			int ai = t[v[i].i], aj = t[v[i].j];
			for(j = 1; j <= n; j ++)
				if(t[j] == aj) t[j] = ai;
		}
	g << s << "\n";
	for(i = 1; i < m; i ++)
		if(viz[i] == true)
			g << v[i].i << " " << v[i].j << "\n";
    return 0;
}