この問題は N+1≤i≤N+MN + 1 \leq i \leq N + MN+1≤i≤N+M について、 頂点 iii を始点としたダイクストラ法を行い、それぞれの頂点 j (1≤j≤N)j \: (1 \leq j \leq N)j(1≤j≤N) について最小の時間を求めればよいことが分かります。
しかし、愚直に行うと O(MKlog(N+M))O( MK \log (N + M))O(MKlog(N+M)) の計算量がかかってしまい、実行制限時間に間に合いません。
ここで、仮想頂点 SSS を用意し、頂点 SSS と それぞれの iii についてコスト 000 の辺を張ることによって、111 回のダイクストラ法で全ての頂点に対する最小の時間を求めることができます。
計算量は O(Klog(N+M)O(K \log (N + M)O(Klog(N+M) で十分高速です。