結果
| 問題 |
No.3 ビットすごろく
|
| コンテスト | |
| ユーザー |
cherrypi59
|
| 提出日時 | 2018-06-23 17:42:44 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 55 ms / 5,000 ms |
| コード長 | 845 bytes |
| コンパイル時間 | 86 ms |
| コンパイル使用メモリ | 12,928 KB |
| 実行使用メモリ | 12,928 KB |
| 最終ジャッジ日時 | 2024-07-01 09:03:13 |
| 合計ジャッジ時間 | 2,426 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 33 |
ソースコード
from collections import deque
n = int(input())
G = [[] for i in range(n)]
check, dist = [0 for i in range(n)], [-1 for i in range(n)]
def bsf(s):
q = deque()
check[s], dist[s] = 1, 0
q.append(s)
while len(q) != 0:
u = q.popleft()
for v in range(len(G[u])):
if check[G[u][v]] == 0:
check[G[u][v]], dist[G[u][v]] = 1, dist[u] + 1
q.append(G[u][v])
check[u] = 2
def main():
for i in range(n):
e, cnt = i + 1, 0
while e != 0:
if e & 1:
cnt += 1
e >>= 1
if i + cnt < n:
G[i].append(i+cnt)
if i - cnt >= 0:
G[i].append(i-cnt)
bsf(0)
if dist[n-1] == -1:
print(-1)
else:
print(dist[n-1]+1)
if __name__ == '__main__':
main()
cherrypi59