Pagini recente »
Monitorul de evaluare
|
Statistici ivas ciprian (ivasturbinca)
|
Monitorul de evaluare
|
laborator_9d_21.02
|
Cod sursă (job #363034)
Cod sursă (job
#363034)
#include <iostream>
#define Mmax 100005
#define Nmax 10005
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("zapada.in");
ofstream fout("zapada.out");
struct Muchie{
int e1,e2,cost;
}G[Mmax];
int A[Nmax],c[Nmax];
int s,n,m,k;
void citire()
{
fin>>n>>m>>k;
for(int i=1;i<=m;++i)
{
fin>>G[i].e1>>G[i].e2>>G[i].cost;
}
for(int i=1;i<=n;++i)
c[i]=i;
fin.close();
}
struct comp{
bool operator ()(Muchie x,Muchie y){
return x.cost < y.cost;
}
};
void Kruskal()
{
int NrMSel;
int min,max;
for(int i=1;NrMSel<n-1;++i)
{
if(c[G[i].e1]!=c[G[i].e2])
{
A[++NrMSel]=i;
s+=G[i].cost;
if(c[G[i].e1]<c[G[i].e2])
{
min=c[G[i].e1];
max=c[G[i].e2];
}
else
{
min=c[G[i].e2];
max=c[G[i].e1];
}
for(int j=1;j<=n;++j)
if(c[j]==max)c[j]=min;
}
}
}
int main()
{
citire();
sort(G,G+n,comp());
Kruskal();
fout<<s<<" ";
return 0;
}