結果

問題 No.17 2つの地点に泊まりたい
ユーザー 6soukiti296soukiti29
提出日時 2017-07-26 16:13:02
言語 Nim
(2.0.2)
結果
CE  
(最新)
AC  
(最初)
実行時間 -
コード長 1,040 bytes
コンパイル時間 804 ms
コンパイル使用メモリ 66,312 KB
最終ジャッジ日時 2024-06-30 01:48:47
合計ジャッジ時間 1,224 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
/home/judge/data/code/Main.nim(17, 35) Error: type mismatch: got 'seq[int]' for 'map(split(readLine(stdin), {' ', '\t', '\v', '\r', '\n', '\f'}, -1), parseInt)' but expected 'tuple'

ソースコード

diff #

import sequtils,strutils,math
var
    N = stdin.readline.parseInt
    S = newSeq[int](0)
    A,B,C : int
    mcos : int
    ans = high(int)
    table : array[50,array[50,int]]
    
for n in 0..<N:
    S.add(stdin.readline.parseInt)
for i in 0..<N:
    for j in 0..<N:
        table[i][j] = 100000
var M = stdin.readline.parseInt
for m in 0..<M:
    (A,B,C) = stdin.readline.split.map(parseInt)
    table[A][B] = C
    table[B][A] = C
var flag = true
while flag:
    flag = false
    for i in 0..<N:
        for j in 0..<N:
            for k in 0..<N:
                if table[i][j] > table[i][k] + table[k][j]:
                    flag = true
                    table[i][j] = table[i][k] + table[k][j]
for i in 1..N - 2:
    for j in 1..N - 2:
        if i == j:
            continue
        mcos = min(@[table[0][i] + table[i][j] + table[j][N - 1],
            table[0][N - 1] + table[N - 1][i] * 2 + table[N - 1][j] * 2,
            table[0][i] + table[i][N - 1] + table[N - 1][j] * 2])
        ans = min(ans,mcos + S[i] + S[j])
echo ans
0