結果
| 問題 |
No.1576 織姫と彦星
|
| ユーザー |
y05h1k1ng
|
| 提出日時 | 2021-07-01 12:31:06 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 749 bytes |
| コンパイル時間 | 146 ms |
| コンパイル使用メモリ | 82,432 KB |
| 実行使用メモリ | 85,136 KB |
| 最終ジャッジ日時 | 2024-06-28 01:39:35 |
| 合計ジャッジ時間 | 4,976 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 5 |
| other | AC * 5 TLE * 1 -- * 48 |
ソースコード
from collections import deque
def hamming_distance(a: int, b: int) -> int:
x = a ^ b
return bin(x)[2:].count("1")
def visit(visited, idx):
return visited ^ (1 << idx)
def isvisited(visited, idx):
return (visited >> idx) & 1
n = int(input())
start, end = map(int, input().split(" "))
stones = list(map(int, input().split(" ")))
que = deque([])
que.append((0, start, 0))
while len(que):
cnt, now, visited = que.popleft()
if hamming_distance(now, end) == 1:
print(cnt)
break
for i in range(n):
stone = stones[i]
if isvisited(visited, i):
continue
if hamming_distance(now, stone) == 1:
que.append((cnt+1, stone, visit(visited, i)))
else:
print(-1)
y05h1k1ng