Pagini recente » Cod sursa (job #2688656) | Cod sursa (job #1511613) | Cod sursa (job #745815) | Cod sursa (job #244348) | Cod sursa (job #3162765)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("apm.in");
ofstream fout("apm.out");
struct muchie{
int st, dr, val, ok=0;
muchie(int x, int y, int c){
st = x, dr = y, val = c;
}
};
bool cmp(muchie a, muchie b){
return a.val < b.val;
}
vector<muchie> graf;
int v[200001], cnt=0, sum=0;
int main(){
int n, m, x, y, c;
fin>>n>>m;
for(int i=1; i<=n; i++) v[i] = i;
for(int i=1; i<=m; i++){
fin>>x>>y>>c;
graf.push_back(muchie(x, y, c));
}
sort(graf.begin(), graf.end(), cmp);
for(int k=0; k<graf.size(); k++){
x = graf[k].st; y = graf[k].dr; c = graf[k].val;
if(v[x] != v[y]){
int rx = v[x], ry = v[y];
for(int i=1; i<=n; i++) if(v[i] == rx) v[i] = ry;
graf[k].ok = 1;
cnt++;
sum += c;
}
}
fout<<sum<<"\n"<<cnt<<"\n";
for(int k=0; k<graf.size(); k++){
if(graf[k].ok){
fout<<graf[k].st<<" "<<graf[k].dr<<"\n";
}
}
}