Pagini recente » Cod sursa (job #32675) | Cod sursa (job #837702) | Cod sursa (job #2531025) | Cod sursa (job #149051) | Cod sursa (job #1391952)
#include <fstream>
#include <queue>
#include <algorithm>
#define x first
#define y second
using namespace std;
ifstream fin("apm.in");
ofstream fout("apm.out");
struct cel{int a,b,c;} v[400010];
queue< pair<int,int> > muchie;
pair<int,int> jeg;
int n,m,frec[200010],i;
long long sum;
bool cmp(cel x,cel y)
{
return x.c<y.c;
}
int main()
{
fin>>n>>m;
for(i=1;i<=n;++i)
frec[i]=i;
for(i=1;i<=m;++i)
fin>>v[i].a>>v[i].b>>v[i].c;
sort(v+1,v+1+m,cmp);
for(i=1;i<=m;++i)
if(frec[v[i].a] != frec[v[i].b]){
frec[v[i].a] = frec[v[i].b];
jeg=make_pair(v[i].a,v[i].b);
muchie.push(jeg);
sum += v[i].c;
}
fout<<sum<<'\n';
while(!muchie.empty()){
jeg=muchie.front();
fout<<jeg.x<<" "<<jeg.y<<'\n';
muchie.pop();
}
return 0;
}