#include<stdio.
h>
void dijkstra(int c[10][10],int n,int s,int d[10])
int v[10],min, u, i, j;
for(i=1; i<=n; i++)
d[i]=c[s][i];
v[i]=0;
v[s]=1;
for(i=1; i<=n; i++)
min=999;
for(j=1; j<=n; j++)
if(v[j]==0 && d[j]<min)
min=d[j];
u=j;
v[u]=1;
for(j=1; j<=n; j++)
if(v[j]==0 && (d[u]+c[u][j])<d[j])
d[j]=d[u]+c[u][j];
int main()
int c[10][10],d[10],i,j,s,sum,n;
printf("\nEnter n value:");
scanf("%d",&n);
printf("\nEnter the cost matrix:\n");
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
scanf("%d",&c[i][j]);
if(c[i][j]==0)
c[i][j]=999;
printf("\nEnter the souce node:");
scanf("%d",&s);
dijkstra(c,n,s,d);
for(i=1; i<=n; i++)
if(i!=s)
printf("\nShortest distance from %d to %d is %d",s,i,d[i]);
return 0;