#define N 1002
#define MAX 99999
int edges[N][N],d[N],n;
void dijkstra(int v)
{
int i,j;
bool s[N]={false};
for(i=1;i<=n;i++)
d[i]=edges[v][i];
d[v]=0;s[v]=true;
for(i=1;i<n;i++)
{
int temp=MAX;
int u=v;
for(j=1;j<=n;j++)
if((!s[j])&&(d[j]<temp))
{
u=j;
temp=d[j];
}
s[u]=true;
for(j=1;j<=n;j++)
if((!s[j])&&(edges[u][j]<MAX)&&(d[u]+edges[u][j])<d[j])
d[j]=d[u]+edges[u][j];
}
}