<span style="font-family:Courier New;">#include <cstdio> #include <cstring> #include <string> #include <iostream> using namespace std; const int MAXN=1000+5; const int MAXM=100000+5; const int INF=0x7fffffff; struct Edge { int u,v,w,next; }; Edge e[MAXM]; int dis[MAXN],vis[MAXN],pre[MAXN]; int main() { int N,M,C,D,K; while(scanf("%d%d%d%d%d",&N,&M,&C,&D,&K)!=EOF) { memset(pre,-1,sizeof(pre)); for(int i=1;i<=M;i++) { scanf("%d%d%d",&e[i].u,&e[i].v,&e[i].w); e[i].next=pre[e[i].u]; pre[e[i].u]=i; } for(int i=1;i<=N;i++) { dis[i]=INF; } memset(vis,0,sizeof(vis)); dis[C]=0; for(int t=1;t<=N;t++) { int x,m=INF; for(int j=1;j<=N;j++) { if(dis[j]<=m && !vis[j]) { x=j; m=dis[j]; } } vis[x]=1; for(int j=pre[x];j!=-1;j=e[j].next) { if(dis[e[j].v]>dis[e[j].u]+e[j].w) dis[e[j].v]=dis[e[j].u]+e[j].w; } } if(dis[D]<=K) printf("%d\n",dis[D]); else printf("Sorry\n"); cout<<INF<<endl; } return 0; }</span>