void floyd(){
for(int k=1;k<=n;k++){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
f[i][j]=min(f[i][j],f[i][k]+f[k][j]);
}
}
}
}
for(int k=1;k<=n;k++)for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)f[i][j]=(f[i][j]||f[i][k]&&f[k][j]);
for(int i=1;i<=n;i++){
int cnt=0;
for(int j=1;j<=n;j++)if(f[i][j]||f[j][i])cnt++;
if(cnt==n-1)sum++;
}
void floyd(){
for(int k=1;k<=n;k++){
for(int i=1;i<k;i++){
for(int j=1;j<i;j++){
if(g[i][k]==-1||g[k][j]==-1)continue;
minn=min(minn,f[i][j]+g[i][k]+g[k][j]);
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<i;j++){
int t=f[i][k]+f[k][j];
if(t<f[i][j])f[i][j]=f[j][i]=t;
}
}
}
}