結果
問題 | No.1 道のショートカット |
ユーザー | yuppe19 😺 |
提出日時 | 2015-10-26 22:53:17 |
言語 | Nim (2.0.2) |
結果 |
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