为什么我的代码所有的点都RE了?
#include<iostream>
using namespace std;
#define maxn 1000
int n,m,s,edge[maxn][maxn],dist[maxn],MAX=0xFFFFFF;
bool visited[maxn]={false};
int used;
void dis(void)
{
for(int j=1;j<m;j++)
{
int minv=MAX;
for(int i=1;i<=m;i++)
{
if(minv>dist[i]&&!visited[i])
{
used=i;
minv=dist[i];
}
}
visited[used]=true;
for(int x=1;x<=m;x++)
{
if(dist[x]>dist[used]+edge[used][x]) dist[x]=dist[used]+edge[used][x];
}
}
}
int main(void)
{
cin>>m>>n>>s;
for(int i=1;i<=m;i++) // m个顶点,n条边
{
for(int j=1;j<=m;j++)
{
if(i==j) edge[i][j]=0;
else edge[i][j]=MAX;
}
}
for(int i=1;i<=n;i++)
{
int u,v,w;
cin>>u>>v>>w;
edge[u][v]=w;
}
visited[s]=true;
for(int i=1;i<=m;i++) dist[i]=edge[s][i];
dis();
for(int i=1;i<=m;i++) cout<<dist[i]<<" ";
}