結果
問題 | No.2673 A present from B |
ユーザー |
![]() |
提出日時 | 2024-10-26 17:57:15 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 271 ms / 2,000 ms |
コード長 | 853 bytes |
コンパイル時間 | 611 ms |
コンパイル使用メモリ | 82,464 KB |
実行使用メモリ | 124,104 KB |
最終ジャッジ日時 | 2024-10-26 17:57:19 |
合計ジャッジ時間 | 4,198 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 24 |
ソースコード
from collections import dequeN, M = map(int, input().split())A = list(map(int, input().split()))vertex = (M+1)*NG = [[] for _ in range(vertex)]for i in range(M+1):for j in range(N-1):G[i*N+j].append((i*N+j+1, 1))G[i*N+j+1].append((i*N+j, 1))for i in range(M):idx = M-1-ifor j in range(N):if A[idx]-1 != j and A[idx] != j:G[i*N+j].append(((i+1)*N+j, 0))G[i*N+A[idx]-1].append(((i+1)*N+A[idx], 0))G[i*N+A[idx]].append(((i+1)*N+A[idx]-1, 0))INF = 10**18visited = [INF]*vertexvisited[0] = 0que = deque()que.append(0)while que:n = que.popleft()for v, c in G[n]:if visited[n]+c < visited[v]:visited[v] = visited[n]+cif c == 0:que.appendleft(v)else:que.append(v)print(*visited[-(N-1):])