問題一覧 > 通常問題

No.3653 Space-Time Courier

レベル : / 実行時間制限 : 1ケース 4.000秒 / メモリ制限 : 1024 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 29
作問者 : Rino-program / テスター : gomaazarasi とある理系大学生の日常
ProblemId : 13697 / yukicoder contest 511 (Div.2) (順位表) / 自分の提出
問題文最終更新日: 2026-08-28 21:02:48
yukicoder contest 511 (Div.2)の他の問題:

問題文

銀河系には $N$ 個のステーション(1, 2, ..., $N$)があり、$M$ 個の一方向時空ワープゲートで結ばれています。
$i$ 番目のワープゲートはステーション $u_i$ から $v_i$ へ移動可能で、移動にかかる所要時間は $t_i$ です。
一部のゲートは時空の歪みにより時間が巻き戻る($t_i < 0$)ことがありますが、時間を無限に遡れるような閉路(負の閉路)は存在しないことが保証されています。


各ステーション $i$ には「基本コスト」 $P_i$ が設定されています。
宇宙船がステーション $A$ を出発し、いくつかのゲートを経由してステーション $B$($A \neq B$)へ荷物を届けるとき、その配送のトータルコストは以下のように定義されます。

$$\text{Cost}(A, B) = (\text{ステーション } A \text{ から } B \text{ への最小所要時間}) + P_A + P_B$$

到達可能なすべての異なるステーションのペア $(A, B)$ における $\text{Cost}(A, B)$ の最小値を求めてください。
また、その最小値を達成するペア $(A, B)$ が何組存在するかを求めてください。

なお、到達可能なステーションのペア $(A, B)$ が $1$つ以上存在することが保証されています。

制約

  • $2 \le N \le 2500$
  • $1 \le M \le 5000$
  • $1 \le u_i, v_i \le N$
  • $u_i \neq v_i$
  • $i \neq j$ のとき、$(u_i, v_i) \neq (u_j, v_j)$
  • $-10^6 \le t_i \le 10^6$
  • $-10^9 \le P_i \le 10^9$
  • グラフに負の閉路は存在しない。
  • 入力される値はすべて整数。

入力

入力は以下の形式で標準入力から与えられます。

$N$ $M$
$P_1$ $P_2$ $\dots$ $P_N$
$u_1$ $v_1$ $t_1$
$u_2$ $v_2$ $t_2$
$\vdots$
$u_M$ $v_M$ $t_M$

出力

最小コストと、その最小コストを達成するペアの個数をスペース区切りで1行に出力してください。 到達可能なペアが存在しない場合は -1 を出力してください。

最後に改行してください。

サンプル

サンプル1
入力
4 4
10 20 15 25
1 2 5
2 3 5
1 3 12
3 4 5
出力
35 2

各ペアのコストは以下の通りです。

  • $(1, 2)$: 所要時間 5、$\text{Cost}(1, 2) = 5 + 10 + 20 = 35$
  • $(2, 3)$: 所要時間 5、$\text{Cost}(2, 3) = 5 + 20 + 15 = 40$
  • $(3, 4)$: 所要時間 5、$\text{Cost}(3, 4) = 5 + 15 + 25 = 45$
  • $(1, 3)$: 所要時間 10($1 \to 2 \to 3$ 経由の方が直接の12より短い)、$\text{Cost}(1, 3) = 10 + 10 + 15 = 35$
  • $(2, 4)$: 所要時間 10($2 \to 3 \to 4$ 経由)、$\text{Cost}(2, 4) = 10 + 20 + 25 = 55$
  • $(1, 4)$: 所要時間 15($1 \to 2 \to 3 \to 4$ 経由)、$\text{Cost}(1, 4) = 15 + 10 + 25 = 50$

最小コストは 35 で、これを達成するペアは $(1, 2)$ と $(1, 3)$ の 2 組です。

サンプル2
入力
4 4
0 0 0 0
1 2 -5
2 3 -5
3 1 15
4 1 10
出力
-10 1

各ペアのコストを計算すると、$(1, 3)$ の最小所要時間が $-10$ となり、$\text{Cost}(1, 3) = -10 + 0 + 0 = -10$ が最小値となります。

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。