結果

問題 No.1576 織姫と彦星
ユーザー rin204
提出日時 2022-01-18 03:09:54
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 54 ms / 2,000 ms
コード長 599 bytes
コンパイル時間 290 ms
コンパイル使用メモリ 82,160 KB
実行使用メモリ 62,720 KB
最終ジャッジ日時 2024-11-23 13:12:33
合計ジャッジ時間 5,231 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 5
other AC * 54
権限があれば一括ダウンロードができます

ソースコード

diff #

from collections import deque

n = int(input())
s, e = map(int, input().split())
stones = list(map(int, input().split()))
dic = {stone:i for i, stone in enumerate(stones, 2)}
dic[s] = 0
dic[e] = 1
dist = [-1] * (n + 2)
dist[0] = 0
queue = deque()
queue.append(s)

while queue:
    pos = queue.popleft()
    for i in range(30):
        npos = pos ^ (1 << i)
        if npos not in dic:
            continue
        p = dic[npos]
        if dist[p] != -1:
            continue
        dist[p] = dist[dic[pos]] + 1
        queue.append(npos)
if dist[1] == -1:
    print(-1)
else:
    print(dist[1] - 1)
0