結果
| 問題 |
No.2939 Sigma Popcount Problem
|
| コンテスト | |
| ユーザー |
学ぶマン
|
| 提出日時 | 2025-02-14 09:32:05 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 518 ms / 2,000 ms |
| コード長 | 506 bytes |
| コンパイル時間 | 457 ms |
| コンパイル使用メモリ | 82,772 KB |
| 実行使用メモリ | 77,308 KB |
| 最終ジャッジ日時 | 2025-02-14 09:32:15 |
| 合計ジャッジ時間 | 7,551 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 18 |
ソースコード
T = int(input())
def solve(n:int):
n += 1
res = 0
for i in range(0, 41):
# 1cycle ... 2**(i+1) 個
# 1cycle の中には半分1がある ... 2**(i) 個
sho, amari = divmod(n, 1<<(i + 1))
res += sho * (1<<i)
# あまり部分の寄与
# あまり部分は うしろ半分に1がつまっている
sub = amari - (1<<i)
if sub > 0:
res += sub
return res
for i in range(T):
N = int(input())
print(solve(N))
学ぶマン