#include #include int main(void){ int N,M,S,G; scanf("%d %d %d %d",&N,&M,&S,&G); int *time,*path; time=(int *)malloc(sizeof(int)*N*N); path=(int *)malloc(sizeof(int)*N*N); int i,j,k; for(i=0;itime[i*N+k]+time[k*N+j]){ time[i*N+k]=time[i*N+k]+time[k*N+j]; } } } } int now=S; while(now!=G){ printf("%d ",now); int next=0; while(path[now*N+next]==0){ next++; } for(i=next+1;itime[i*N+G]){ next=i; } } now=next; } printf("%d\n",G); free(time); return 0; }