rt。
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,m,s,t,u,v,w,dp[20010];
struct node{
int zhong,chang;
};
struct node2{
int zhong,ceng;
};
vector<node>vec[20010];
void spfa(int x){
queue<node2>q;
q.push((node2){x,0LL});
while(!q.empty()){
int k=q.front().zhong;
int ks=q.front().ceng;
q.pop();
for(int i=0LL;i<vec[k].size();i++){
int y=vec[k][i].zhong;
int c=vec[k][i].chang/(ks+1LL);
if(dp[k]+c<dp[y]){
dp[y]=dp[k]+c;
q.push((node2){y,ks+1LL});
}
}
}
}
signed main(){
cin>>n>>m>>s>>t;
for(int i=1;i<=n;i++){
dp[i]=1e17;
}
for(int i=1;i<=m;i++){
cin>>u>>v>>w;
vec[u].push_back((node){v,w});
vec[v].push_back((node){u,w});
}
dp[t]=0LL;
spfa(t);
cout<<dp[s];
return 0;
}