提出 #24525389


ソースコード 拡げる

import sys
from collections import defaultdict, deque

def main(f):
  N, M = list(map(int, f.readline().split()))
  dp = [[0]*(N+1) for _ in range(N+1)]
  for _ in range(1, M+1):
    a, b, c = list(map(int, f.readline().split()))
    dp[a][b] = c

  result = 0
  for k in range(1, N+1): # 都市 k の経由を許可する
    for x in range(1, N+1):
      if dp[x][k] == 0:
        continue
      for y in range(1, N+1):
        if dp[k][y] == 0:
          continue
        if x == y:
          continue

        if dp[x][y] == 0:
          dp[x][y] = dp[x][k] + dp[k][y]
        else:
          dp[x][y] = min(dp[x][y], dp[x][k] + dp[k][y])
    result += sum(map(sum, dp))
  print(result)

main(sys.stdin)

提出情報

提出日時
問題 D - Shortest Path Queries 2
ユーザ enakai
言語 PyPy3 (7.3.0)
得点 400
コード長 735 Byte
結果 AC
実行時間 1406 ms
メモリ 76140 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 400 / 400
結果
AC × 3
AC × 18
セット名 テストケース
Sample sample_00.txt, sample_01.txt, sample_02.txt
All empty_00.txt, path_00.txt, path_01.txt, perfect_00.txt, perfect_01.txt, perfect_02.txt, perfect_03.txt, perfect_04.txt, random_00.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, sample_00.txt, sample_01.txt, sample_02.txt, tree_00.txt, tree_01.txt
ケース名 結果 実行時間 メモリ
empty_00.txt AC 164 ms 75532 KiB
path_00.txt AC 229 ms 75132 KiB
path_01.txt AC 226 ms 74952 KiB
perfect_00.txt AC 782 ms 75708 KiB
perfect_01.txt AC 1406 ms 75708 KiB
perfect_02.txt AC 777 ms 76124 KiB
perfect_03.txt AC 769 ms 76140 KiB
perfect_04.txt AC 792 ms 76028 KiB
random_00.txt AC 100 ms 73960 KiB
random_01.txt AC 146 ms 74512 KiB
random_02.txt AC 522 ms 75192 KiB
random_03.txt AC 173 ms 74372 KiB
random_04.txt AC 287 ms 75120 KiB
sample_00.txt AC 55 ms 64376 KiB
sample_01.txt AC 54 ms 64480 KiB
sample_02.txt AC 52 ms 64536 KiB
tree_00.txt AC 159 ms 74976 KiB
tree_01.txt AC 155 ms 75316 KiB