結果
| 問題 |
No.3 ビットすごろく
|
| コンテスト | |
| ユーザー |
dashi_dragons
|
| 提出日時 | 2017-02-13 20:42:52 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 715 bytes |
| コンパイル時間 | 272 ms |
| コンパイル使用メモリ | 12,672 KB |
| 実行使用メモリ | 10,880 KB |
| 最終ジャッジ日時 | 2024-12-29 19:09:21 |
| 合計ジャッジ時間 | 2,687 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 17 WA * 16 |
ソースコード
import sys
def bitcnt(N):
cnt = 0
while N != 0:
cnt += N % 2
N = N // 2
return cnt
def move(loc,N):
cnt = bitcnt(N)
mov = loc
while True:
if cnt == 0:
return -1
if cnt + loc < N:
mov = loc + cnt
move(loc,N)
N = int(input())
if N < 1 or N > 10000:
sys.exit()
loc = 1
cnt = 0
x = 1
pos = {}
while True:
cnt = bitcnt(loc)
#print('loc:'+str(loc))
#print(pos)
if loc not in pos:
pos[loc] = 1
if pos[loc] == 0:
print('-1')
break
elif pos[loc] > 0:
if loc + cnt < N:
pos[loc] = -1
loc += cnt
x += 1
continue
elif loc + cnt == N:
loc += cnt
x += 1
print(x)
break
else:
pos[loc] = -1
else:
pos[loc] = 0
loc -= cnt
x += 1
dashi_dragons