Pagini recente » Istoria paginii runda/lotbistrita2009z1/clasament | Cod sursa (job #2743893) | Cod sursa (job #823278) | Cod sursa (job #1088860) | Cod sursa (job #1426537)
#include<iostream>
#include<fstream>
#include<algorithm>
#include<vector>
using namespace std;
struct muchii
{
int ns,nd,cost;
};
int *parinte;
int parinti(int n)
{
if (n==parinte[n]) return n;
return parinte[n]=parinti(parinte[n]);
}
bool cmp (muchii p, muchii q)
{
if ( p.cost<q.cost) return true;
return false;
}
int main ()
{
ifstream f("algoritmul_lui_kruskal.txt");
int nr_noduri,nr_muchii,i,j,k,p,q;
f>>nr_noduri>>nr_muchii;
vector<muchii> gf(nr_muchii);
for(i=0; i<nr_muchii; i++)
f>>gf[i].ns>>gf[i].nd>>gf[i].cost;
sort(gf.begin(), gf.end(), cmp);
/*for(i=0; i<nr_muchii; i++)
cout<<gf[i].ns<<" "<<gf[i].nd<<" "<<gf[i].cost<<endl;*/
parinte=new int[nr_noduri];
for(i=0; i<nr_noduri; i++)
parinte[i]=i;
int contor=nr_noduri-1;
for(i=0; i<nr_muchii&&contor>0; i++)
{
if(parinte[gf[i].ns]!=parinte[gf[i].nd])
{
parinte[gf[i].ns]=parinte[gf[i].nd];
contor--;
cout<<gf[i].ns<<"-->"<<gf[i].nd<<endl;
}
}
}