結果
問題 | No.1283 Extra Fee |
ユーザー |
![]() |
提出日時 | 2020-09-05 00:59:51 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,159 bytes |
コンパイル時間 | 349 ms |
コンパイル使用メモリ | 12,544 KB |
実行使用メモリ | 95,924 KB |
最終ジャッジ日時 | 2024-11-26 21:32:30 |
合計ジャッジ時間 | 54,860 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 16 TLE * 14 |
ソースコード
from heapq import heappush,heappopimport numpy as npINF = int(1e18)dh = [1,0,-1,0]dw = [0,1,0,-1]N, M = map(int,input().split())dist0 = np.full((N,N),INF)dist1 = np.full((N,N),INF)c = np.zeros((N,N))dist0[0][0] = 0dist1[0][0] = 0for i in range(M):H, W, C = map(int,input().split())H -= 1W -= 1c[H][W] = Cq = [(0,0,0,0)]while q:C, H, W, used = heappop(q)if(used == 0 and dist0[H][W] < C):continueif(used == 1 and dist1[H][W] < C):continuefor i in range(4):nH = H + dh[i]nW = W + dw[i]if(nH < 0 or nH >= N):continueif(nW < 0 or nW >= N):continuenC0 = C + c[nH][nW] + 1nC1 = C + 1if(used == 0):if(dist0[nH][nW] > nC0):heappush(q,(nC0,nH,nW,0))dist0[nH][nW] = nC0if(dist1[nH][nW] > nC1):heappush(q,(nC1,nH,nW,1))dist1[nH][nW] = nC1else:if(dist1[nH][nW] > nC0):heappush(q,(nC0,nH,nW,1))dist1[nH][nW] = nC0print(min(dist0[N-1][N-1],dist1[N-1][N-1]))