请问大佬这个是不能用邻接矩阵存,还是怎么了,我这个为什么全错
#include<bits/stdc++.h>
using namespace std;
#define INF 99999999
vector<int> Dijkstra(vector<vector<int>> graph,int start){
int n=graph.size();
vector<int> visit(n,0);
vector<int> dist(n,0);
for(int i=0;i<n;i++){
dist[i]=graph[start][i];
}
visit[start]=1;
for(int i=0;i<n;i++){
int min_dist=INF;
int middle=0;
for(int j=0;j<n;j++){
if(visit[j]==0 && min_dist>dist[j]){
min_dist=dist[j];
middle=j;
}
}
for(int j=0;j<n;j++){
if(visit[j]==0 && dist[j]>dist[middle]+graph[middle][j]) {
dist[j]=dist[middle]+graph[middle][j];
}
}
visit[middle]=1;
}
return dist;
}
int main(){
int n,m,k;
cin>>n>>m>>k;
k-=1;
vector<vector<int>> graph;
for(int i=0;i<n;i++){
graph.push_back(vector<int>());
for(int j=0;j<n;j++){
graph[i].push_back(INF);
}
graph[i][i]=0;
}
for(int i=0;i<m;i++){
int x,y,z;
cin>>x>>y>>z;
x-=1;y-=1;
graph[x][y]=z;
}
vector<int> dist=Dijkstra(graph,k);
for(int i=0;i<n;i++){
cout<<dist[i];
if(i!=n-1) cout<<" ";
}
return 0;
}