#include #include #include using namespace std; int rappresentante(int find, int *find_vect) { if(find_vect[find] != find) find_vect[find] = rappresentante(find_vect[find],find_vect); return find_vect[find]; } int main() { // definisco i grafi graph_orig e graphMST vector< pair > > graph_orig,graphMST; int tot_nodi,tot_archi; // carico i primi due valori rappresentanti rispettivamente il numero di nodi (n) e il numero di archi (e) ifstream f("input.txt"); f>>tot_nodi>>tot_archi; int find_vect[tot_nodi]; // inizializzo la variabile for(int i=1; i<=tot_nodi; i++) find_vect[i] = i; // carico i successivi valori che rappresentano i due nodi collegati e il peso dell'arco int u,v,p; for(int i=0; i>u>>v>>p; graph_orig.push_back(pair >(p,make_pair(u,v))); } // ordinamento del grafo in base ai pesi dal peso minore al peso maggiore sort(graph_orig.begin(),graph_orig.end()); // popolo il grafo graphMST solo con i nodi int somma = 0; for(int i=0; i