Write a program that implements Prim's algorithm to generate minimum cost spanning Tree.

#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;
}