結果

問題 No.2569 はじめてのおつかいHard
ユーザー chaemonchaemon
提出日時 2023-12-02 16:48:12
言語 Nim
(2.0.2)
結果
AC  
実行時間 474 ms / 2,000 ms
コード長 18,172 bytes
コンパイル時間 5,153 ms
コンパイル使用メモリ 96,820 KB
実行使用メモリ 45,740 KB
最終ジャッジ日時 2023-12-02 16:48:22
合計ジャッジ時間 8,347 ms
ジャッジサーバーID
(参考情報)
judge13 / judge14
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 112 ms
28,256 KB
testcase_01 AC 121 ms
28,256 KB
testcase_02 AC 116 ms
28,256 KB
testcase_03 AC 116 ms
28,256 KB
testcase_04 AC 126 ms
28,256 KB
testcase_05 AC 474 ms
42,284 KB
testcase_06 AC 303 ms
31,064 KB
testcase_07 AC 430 ms
45,508 KB
testcase_08 AC 474 ms
45,740 KB
testcase_09 AC 220 ms
39,856 KB
testcase_10 AC 1 ms
6,676 KB
testcase_11 AC 2 ms
6,676 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

import macros
macro Please(x): untyped = nnkStmtList.newTree()

Please use Nim-ACL
Please use Nim-ACL
Please use Nim-ACL


static:
  when not defined SecondCompile:
    # md5sum: 53ca66a715e1dc83a283127c351cfe0b  atcoder.tar.xz

    template getFileName():string = instantiationInfo().filename
    let fn = getFileName()
    block:
      let (output, ex) = gorgeEx("if [ -e ./atcoder ]; then exit 1; else exit 0; fi")
      # doAssert ex == 0, "atcoder directory already exisits"
    discard staticExec("echo \"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\" | base64 -d > atcoder.tar.xz && tar -Jxvf atcoder.tar.xz")
    let (output, ex) = gorgeEx("nim cpp -d:release -d:SecondCompile -d:danger --path:./ --opt:speed --multimethods:on --warning[SmallLshouldNotBeUsed]:off --checks:off -o:a.out " & fn)
    discard staticExec("rm -rf ./atcoder");doAssert ex == 0, output;quit(0)


when defined SecondCompile:
  const DO_CHECK = false;const DEBUG = false
else:
  const DO_CHECK = true;const DEBUG = true
const
  USE_DEFAULT_TABLE = true
  DO_TEST = false

# see https://github.com/zer0-star/Nim-ACL/tree/master/src/atcoder/extra/header/chaemon_header.nim
include atcoder/extra/header/chaemon_header

# see https://github.com/zer0-star/Nim-ACL/tree/master/src/atcoder/extra/graph/graph_template.nim
import atcoder/extra/graph/graph_template

# see https://github.com/zer0-star/Nim-ACL/tree/master/src/atcoder/extra/graph/dijkstra.nim
import atcoder/extra/graph/dijkstra


proc solve() =
  let N, M = nextInt()
  var g, h = initGraph(N)
  for _ in M:
    let u, v = nextInt() - 1
    let t = nextInt()
    g.addEdge(u, v, t)
    h.addEdge(v, u, t)
  var
    d1 = g.dijkstra(N - 2)
    d2 = g.dijkstra(N - 1)
    e1 = h.dijkstra(N - 2)
    e2 = h.dijkstra(N - 1)
  for k in N - 2:
    var ans = int.inf
    # k -> N - 2 -> N - 1 -> k
    ans.min= min(int.inf, e1[k] + d1[N - 1]) + d2[k]
    # k -> N - 1 -> N - 2 -> k
    ans.min= min(int.inf, e2[k] + d2[N - 2]) + d1[k]
    if ans == int.inf:
      echo -1
    else:
      echo ans
  discard

solve()

0