Pagini recente » testcnam_oji | Cod sursa (job #2179667) | Cod sursa (job #210422) | Cod sursa (job #1872432) | Cod sursa (job #2131039)
#include <fstream>
#include <algorithm>
using namespace std;
struct el{
int xl,yl,cost;
bool es;
}v[400002];
int n,m;
int t[200002];
bool cp(el m1,el m2)
{
return m1.cost<m2.cost;
}
int ver(int x)
{
if(t[x]==x)
return x;
t[x]=ver(t[x]);
return t[x];
}
ifstream f("apm.in");
ofstream g("apm.out");
void reuneste(int m3,int m4)
{
t[ver(m3)]=ver(m4);
}
int tot=0,co=0;
int main()
{
f>>n>>m;
for(int i=1;i<=m;i++)
{
f>>v[i].xl>>v[i].yl>>v[i].cost;
v[i].es=true;
}
sort(v+1,v+m+1,cp);
for(int i=1;i<=n;i++)
t[i]=i;
for(int i=1;i<=m;i++)
{
if(ver(v[i].xl)==ver(v[i].yl))
v[i].es=false;
else
{
reuneste(v[i].xl,v[i].yl);
tot=tot+v[i].cost;
co++;
}
}
g<<tot<<"\n";
g<<co<<"\n";
for(int i=1;i<=m;i++)
{
if(v[i].es)
{
g<<v[i].xl<<" "<<v[i].yl<<"\n";
}
}
return 0;
}