const int maxn=605;
const int inf=8000000;
void dij(int n,int g[][maxn],int s,int d[])
{
int i,r;
int minc,used[n];
for(i=0;i<n;i++)
{
d[i]=inf;used[i]=0;
}
d[s]=0;
for(int k=0;k<n;k++)
{
minc=inf;
for(i=0;i<n;i++)
if(!used[i]&&d[i]<minc) {minc=d[i];r=i;}
for(i=0;i<n;i++)
{
if(!used[i]&&&g[r][i]<inf&&d[i]>d[r]+g[r][i])
d[i]=d[r]+g[r][i];
used[r]=1;
}
}
}