結果
| 問題 |
No.1 道のショートカット
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2015-10-26 22:53:17 |
| 言語 | Nim (2.2.0) |
| 結果 |
CE
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 1,005 bytes |
| コンパイル時間 | 993 ms |
| コンパイル使用メモリ | 66,296 KB |
| 最終ジャッジ日時 | 2024-11-14 19:21:47 |
| 合計ジャッジ時間 | 1,425 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
/home/judge/data/code/Main.nim(1, 28) Warning: Use the new 'sugar' module instead; future is deprecated [Deprecated] /home/judge/data/code/Main.nim(25, 14) Error: type mismatch Expression: <V [1] V: int Expected one of (first mismatch at [position]): [1] proc `<`(x, y: bool): bool [1] proc `<`(x, y: char): bool [1] proc `<`(x, y: float): bool [1] proc `<`(x, y: float32): bool [1] proc `<`(x, y: int16): bool [1] proc `<`(x, y: int32): bool [1] proc `<`(x, y: int8): bool [1] proc `<`(x, y: pointer): bool [1] proc `<`(x, y: string): bool [1] proc `<`(x, y: uint): bool [1] proc `<`(x, y: uint16): bool [1] proc `<`(x, y: uint32): bool [1] proc `<`(x, y: uint64): bool [1] proc `<`(x, y: uint8): bool [1] proc `<`[Enum: enum](x, y: Enum): bool [1] proc `<`[T: tuple](x, y: T): bool [1] proc `<`[T](x, y: ptr T): bool [1] proc `<`[T](x, y: ref T): bool [1] proc `<`[T](x, y: set[T]): bool [2] proc `<`(x, y: int): bool [2] proc `<`(x, y: int64): bool
ソースコード
import strutils, sequtils, future
const
INF = 987654321
type
Route = object
to: int
cost: int
time: int
proc newRoute(): Route = Route(to: 0, cost: 0, time: 0)
proc newRoute(to, cost, time: int): Route = Route(to: to, cost: cost, time: time)
var
N = stdin.readLine.parseInt
C = stdin.readLine.parseInt
V = stdin.readLine.parseInt
S = stdin.readLine.split.map((x: string) => parseInt(x) - 1)
T = stdin.readLine.split.map((x: string) => parseInt(x) - 1)
Y = stdin.readLine.split.map(parseInt)
M = stdin.readLine.split.map(parseInt)
routes = newSeqWith(N, newSeqWith(0, newRoute()))
dp = newSeqWith(N, newSeqWith(C+1, INF))
for i in 0.. <V:
routes[S[i]].add(newRoute(T[i], Y[i], M[i]))
dp[0][0] = 0
for v in 0.. <N:
for cost in 0.. C:
for route in routes[v]:
var ncost = cost + route.cost
if ncost > C: continue
dp[route.to][ncost] = min(dp[route.to][ncost], dp[v][cost] + route.time);
var res = min(dp[N-1])
if res == INF: res = -1
echo res