#include using namespace std; int main(){ int n,m,s,g; cin>>n>>m>>s>>g; vector dp(n,(1<<25)); vector> dist(n,vector(n,(1<<25))); while(m--){ int a,b,c; cin>>a>>b>>c; dist[a][b]=dist[b][a]=c; } dp[g]=0; priority_queue> pq; pq.push(make_pair(0,g)); while(!pq.empty()){ auto now=pq.top(); pq.pop(); int cost=-now.first,cur=now.second; if(cost>dp[cur]) continue; for(int i=0;i