結果
| 問題 | No.3 ビットすごろく |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-06-10 19:22:35 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 862 bytes |
| コンパイル時間 | 238 ms |
| コンパイル使用メモリ | 12,544 KB |
| 実行使用メモリ | 10,880 KB |
| 最終ジャッジ日時 | 2024-06-23 13:09:41 |
| 合計ジャッジ時間 | 5,303 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 12 WA * 21 |
ソースコード
inp = int(input())
def bitJusawi(goal):
move = lambda x: list(map(int, list(bin(x)[2:]))).count(1)
his = [] ; loc = 0; ops = 0; rem = goal - loc
while goal != loc:
his.append(loc)
rem = goal - loc
if ops == 0:
ops = 1; loc = 1
else:
ops += 1
rng = move(loc)
if rem >= rng:
loc += rng
else:
bounce = goal - ((loc + rng) - goal)
if loc - rng < bounce:
loc = bounce
else:
loc -= rng
cond = []
for i in range(2,goal//2+1,2):
if ops >= i:
h = i // 2
cond.append(loc == his[-h] == his[-i])
stuck = any(cond)
if stuck:
return -1
return ops
print(bitJusawi(inp))