結果
問題 |
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))