結果
| 問題 |
No.1 道のショートカット
|
| コンテスト | |
| ユーザー |
6soukiti29
|
| 提出日時 | 2017-07-05 01:12:55 |
| 言語 | Nim (2.2.0) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,079 bytes |
| コンパイル時間 | 3,184 ms |
| コンパイル使用メモリ | 67,056 KB |
| 実行使用メモリ | 6,948 KB |
| 最終ジャッジ日時 | 2024-07-08 04:56:14 |
| 合計ジャッジ時間 | 4,236 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 21 RE * 19 |
ソースコード
import sequtils,strutils
type
bound = tuple[From:int,to : int, cost : int, time : int]
var
N = stdin.readline.parseInt
C = stdin.readline.parseInt
V = stdin.readline.parseInt
S,T,Y,M : seq[int]
L = newSeqWith(4,newSeq[int](0))
Mities = newSeq[bound](0)
Max_i = high(int) - 300
miti : bound
L = @[]
for i in 0..3:
L &= stdin.readline.split.map(parseInt)
(S,T,Y,M) = (L[0],L[1],L[2],L[3])
var
mintime = newSeqWith(C + 1, newSeqWith(N,Max_i))
mintime[0][0] = 0
for i in 0..<V:
miti = (S[i]-1,T[i]-1,Y[i],M[i])
Mities.add(miti)
var flag : bool
flag = true
while flag:
flag = false
for c in 1..C:
for n in 0..N-1:
mintime[c][n] = min(mintime[c - 1][n],mintime[c][n])
for m in Mities:
if m.cost > c:
continue
elif mintime[c - m.cost][m.From] + m.time < mintime[c][m.to]:
flag = true
mintime[c][m.to] = mintime[c - m.cost][m.From] + m.time
if mintime[C][N - 1] == high(int) - 300:
echo -1
else:
echo mintime[C][N-1]
6soukiti29