結果

問題 No.2569 はじめてのおつかいHard
ユーザー chaemon
提出日時 2023-12-02 16:48:12
言語 Nim
(2.2.0)
結果
AC  
実行時間 548 ms / 2,000 ms
コード長 18,172 bytes
コンパイル時間 4,756 ms
コンパイル使用メモリ 96,896 KB
実行使用メモリ 41,088 KB
最終ジャッジ日時 2024-09-26 20:44:40
合計ジャッジ時間 9,179 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 10
権限があれば一括ダウンロードができます

ソースコード

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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
        /sCAAAAAARZWg==\" | base64 -d > atcoder.tar.xz && tar -Jxvf atcoder.tar.xz")<hide>
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()
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0