void dij(int s) {
memset(vis,0,sizeof(vis));sum=0;
memset(dist,0x3f,sizeof(dist));
for(register int i=1;i<=n;++i) dist[i]=a[s][i];
vis[s]=1;
for(register int i=1;i<=n-1;++i) {
int minn=0x3f3f3f3f;
for(register int j=1;j<=n;++j)
if(!vis[j]&&dist[j]<minn) minn=dist[j],pos=j;
vis[pos]=1;
sum=sum+dist[pos]*vv;
for(register int j=1;j<=n;++j)
if(!vis[j]&&dist[j]>a[pos][j]+dist[pos])
dist[j]=min(dist[j],dist[pos]+a[pos][j]);
}
}
void prim(int s) {
memset(vis,0,sizeof(vis));sum=0;
memset(dist,0x3f,sizeof(dist));
for(register int i=1;i<=n;++i) dist[i]=a[s][i];
vis[s]=1;
for(register int i=1;i<=n-1;++i) {
int minn=0x3f3f3f3f;
for(register int j=1;j<=n;++j)
if(!vis[j]&&dist[j]<minn) minn=dist[j],pos=j;
vis[pos]=1;
sum=sum+dist[pos]*vv;
for(register int j=1;j<=n;++j)
if(!vis[j]&&dist[j]>a[pos][j])
dist[j]=min(dist[j],a[pos][j]);
}
}