#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3fffffff;
const int maxn = 2505;
const int maxm = 6205;
int n, m, s, t;
int dis[maxn];
struct edge{
int u, v, w;
}e[maxm];
int main(){
cin>>n>>m>>s>>t;
for(int i=1; i<=m; i++){
cin>>e[i].u>>e[i].v>>e[i].w;
}
memset(dis, 0x3f, sizeof(dis));
dis[s] = 0;
bool flag = false;
for(int i=1; i<n; i++){
flag = false;
for(int j=0; j<m; j++){
int u = e[j].u; int v = e[j].v;
int w = e[j].w;
if(dis[v] > dis[u]+w){
dis[v] = dis[u]+w;
flag = true;
}
if(dis[u] > dis[v]+w){
dis[u] = dis[v]+w;
flag = true;
}
}
if(!flag) break;
}
cout<<dis[t];
return 0;
}
第三个点怎么都卡不过இ௰இ
求助大佬!!!
<(_ _)>