Documentos de Académico
Documentos de Profesional
Documentos de Cultura
#include <string>
#include <vector>
#include <algorithm>
#include <list>
#include<stdio.h>
#include<conio.h>
#define DEBUG
#define ii pair<int,int>
vector<int> grafov;
vector<pair<int,ii> >grafo;
int i;
grafov.resize(size);
REPETICION(i,size+1)
grafov[i]=i;
int encontrar(int i)
{
grafov[encontrar(i)]=encontrar(j);
if(encontrar(i) == encontrar(j))
return true;
return false;
void kruskal(int N)
{int sum=0,i;
inicio(N);
sort(grafo.begin(),grafo.end());
for(i=0;i<grafo.size();i++)
{ pair<int,ii>aux=grafo[i];
if(!isSameSet(aux.second.first,aux.second.second))
sum=aux.first+sum;
unir(aux.second.first,aux.second.second);
int main(){
int V,A,i,a,b,w;
cin>>A;
cin>>V;
for(i=0;i<A;i++){
grafo.push_back(pair<int,ii>(w,ii(a,b)));
kruskal(V);
getch();
return 0;