結果

問題 No.2565 はじめてのおつかい
ユーザー chaemonchaemon
提出日時 2023-12-02 15:55:21
言語 Nim
(2.0.2)
結果
WA  
実行時間 -
コード長 17,941 bytes
コンパイル時間 4,993 ms
コンパイル使用メモリ 97,976 KB
実行使用メモリ 23,288 KB
最終ジャッジ日時 2023-12-02 15:55:37
合計ジャッジ時間 10,504 ms
ジャッジサーバーID
(参考情報)
judge10 / judge13
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
6,548 KB
testcase_01 WA -
testcase_02 AC 1 ms
6,548 KB
testcase_03 WA -
testcase_04 WA -
testcase_05 WA -
testcase_06 WA -
testcase_07 WA -
testcase_08 WA -
testcase_09 WA -
testcase_10 WA -
testcase_11 WA -
testcase_12 AC 25 ms
10,112 KB
testcase_13 WA -
testcase_14 WA -
testcase_15 WA -
testcase_16 WA -
testcase_17 WA -
testcase_18 WA -
testcase_19 WA -
testcase_20 WA -
testcase_21 WA -
testcase_22 WA -
testcase_23 WA -
testcase_24 WA -
testcase_25 WA -
testcase_26 WA -
testcase_27 WA -
testcase_28 WA -
testcase_29 WA -
testcase_30 WA -
testcase_31 WA -
testcase_32 WA -
testcase_33 WA -
testcase_34 WA -
testcase_35 WA -
testcase_36 WA -
testcase_37 WA -
testcase_38 WA -
testcase_39 WA -
testcase_40 WA -
testcase_41 WA -
testcase_42 WA -
testcase_43 WA -
testcase_44 WA -
testcase_45 WA -
testcase_46 WA -
testcase_47 WA -
testcase_48 WA -
testcase_49 WA -
testcase_50 WA -
testcase_51 AC 2 ms
6,548 KB
testcase_52 AC 48 ms
23,288 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: c62ab7188ee9e241288b9d026866f3b4  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 = initGraph(N)
  for _ in M:
    let u, v = nextInt() - 1
    g.addBiEdge(u, v)
  var
    d0 = g.dijkstra(0)
    d1 = g.dijkstra(N - 2)
    d2 = g.dijkstra(N - 1)
    ans = int.inf
  ans.min= d0[N - 2] + d1[N - 1] + d2[0]
  ans.min= d0[N - 1] + d2[N - 2] + d1[0]
  echo ans
  discard

solve()

0