#include <stdio.h>
#define Infinity 9999
#define MAX_SIZE 10
int main() {
int cost[MAX_SIZE][MAX_SIZE], n, edg;
int vis[MAX_SIZE] = {0};
int i, j;
printf("ENTER THE NUMBER OF VERTICES\n");
scanf("%d", &n);
printf("ENTER THE NUMBER OF EDGES\n");
scanf("%d", &edg);
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++)
cost[i][j] = Infinity;
int cst;
printf("ENTER THE ADJACENCY LIST WITH COST :(U,V)=COST\n");
for (int z = 1; z <= edg; z++) {
scanf("%d%d%d", &i, &j, &cst);
cost[i][j] = cost[j][i] = cst;
}
vis[1] = 1;
int totalEdgeCount = 1;
int mstTotalCost = 0;
int u, v;
while (totalEdgeCount < n) {
int min = Infinity;
for (i = 1; i <= n; i++) {
for (j = 1; j <= n && vis[i] == 1; j++) {
if (cost[i][j] < min) {
min = cost[i][j];
u = i;
v = j;
}
}
}
if (vis[v] == 0) {
printf(" Edge %d (%d,%d) = %d\n", totalEdgeCount++, u, v, min);
mstTotalCost += min;
vis[v] = 1;
}
cost[u][v] = cost[v][u] = Infinity;
}
printf("\nMINIMUM COST OF SPANNING TREE IS %d\n", mstTotalCost);
return 0;
}