結果
| 問題 |
No.2673 A present from B
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2024-03-16 02:09:32 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 904 bytes |
| コンパイル時間 | 547 ms |
| コンパイル使用メモリ | 82,464 KB |
| 実行使用メモリ | 239,448 KB |
| 最終ジャッジ日時 | 2024-09-30 03:44:12 |
| 合計ジャッジ時間 | 5,184 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 19 WA * 5 |
ソースコード
from collections import deque
import sys
input = sys.stdin.readline
N, M = map(int, input().split())
A = list(map(int, input().split()))
L = (2*M+3)*N
G = [set() for _ in range(L)]
for i in range(N):
for j in range(L//N-1):
G[(j+1)*N+i].add((j*N+i, 0))
for i in range(1, 2*M+3, 2):
for j in range(N-1):
G[i*N+j].add((i*N+j+1, 1))
for i, a in enumerate(A):
a-=1
u = (i*2+2)*N+a
v = (i*2+2)*N+a+1
G[u].add((v-N, 0))
G[v].add((u-N, 0))
G[u].discard((u-N, 0))
G[v].discard((v-N, 0))
#print(G)
deq = deque()
st = (2*M+2)*N
deq.append(st)
INF = 10**9
dist = [INF for _ in range(L)]
dist[st] = 0
while deq:
v = deq.popleft()
for nv, cost in G[v]:
if dist[nv]!=INF:
continue
dist[nv] = dist[v] + cost
if cost==0:
deq.appendleft(nv)
else:
deq.append(nv)
#print(dist)
print(*dist[1:N])