結果
問題 |
No.1577 織姫と彦星2
|
ユーザー |
![]() |
提出日時 | 2022-11-22 00:18:38 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 180 ms / 2,000 ms |
コード長 | 598 bytes |
コンパイル時間 | 358 ms |
コンパイル使用メモリ | 82,336 KB |
実行使用メモリ | 94,400 KB |
最終ジャッジ日時 | 2024-09-22 13:23:27 |
合計ジャッジ時間 | 8,677 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 53 |
ソースコード
from collections import defaultdict, deque N = int(input()) start, end = map(int,input().split()) s = [start]+list(map(int, input().split()))+[end] d = {s[i]:i for i in range(N+2)} G = [list() for _ in range(N+2)] q = deque for i in range(N+2): for j in range(30): G[i].append(s[i]^(1<<j)) q = deque() dis = [-1]*(N+2) q.append(0) dis[0] = 0 while q: v = q.popleft() for nex in G[v]: if nex in d: nex_id = d[nex] if dis[nex_id]==-1: dis[nex_id] = dis[v]+1 q.append(nex_id) print(-1 if dis[-1]==-1 else dis[-1]-1)