哪个大佬帮我看下我的prim求最小生成树哪里错了
#include <iostream>
#include <cstring>
using namespace std;
const long long inf=123456789;
int mina[5001],sum,v[5001],node[5001][5001],n,m;
void f()
{
memset(node,inf,sizeof(node));
for(int i=1;i<=n;i++)
{
node[i][i]=0;
}
int s,t,u;
cin>>n>>m;
for(int i=1;i<=m;i++)
{
cin>>s>>t>>u;
if(node[s][t]>u&&s!=t)
node[s][t]=node[t][s]=u;
}
}
void prim()
{
int minn,k;
for(int i=1;i<=n;i++) mina[i]=inf;
mina[1]=0;
v[1]=1;
sum=0;
for(int i=1;i<n;i++)
{
k=0;
minn=inf;
for(int j=1;j<=n;j++)
{
if(!v[j])
{
if(mina[j]<minn)
{
k=j;
minn=mina[j];
}
}
}
if(!k&&i<n)
{
cout<<"orz";
return;
}
v[k]=1;
sum+=mina[k];
for(int j=1;j<=n;j++)
{
if(!v[j])
{
if(node[k][j]<mina[j]) mina[j]=node[k][j];
}
}
}
cout<<sum;
return;
}
int main()
{
memset(v,0,sizeof(v));
f();
prim();
return 0;
}