static int KruskalMST() {
		int origen, destino, peso;
		int total = 0;
		int numAristas = 0;

		Arrays.fill(used, 0, V * V, false);
		MakeSet(V);

		for (int i = 0; i < E; ++i) {
			origen = arista[i].origen;
			destino = arista[i].destino;
			peso = arista[i].peso;
			if (!sameComponent(origen, destino)) {
				total += peso;
				MST[numAristas] = arista[i];
				used[i] = true;
				unionByRank(origen, destino);
				numAristas++;
			}
		}
		return numAristas != V - 1 ? Integer.MAX_VALUE : total;
	}