結果

問題 No.737 PopCount
コンテスト
ユーザー togetogehat
提出日時 2018-09-30 15:14:36
言語 Python3
(3.14.3 + numpy 2.4.4 + scipy 1.17.1)
コンパイル:
python3 -mpy_compile _filename_
実行:
python3 _filename_
結果
AC  
実行時間 156 ms / 1,000 ms
コード長 382 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 516 ms
コンパイル使用メモリ 20,844 KB
実行使用メモリ 15,360 KB
最終ジャッジ日時 2026-04-28 21:56:12
合計ジャッジ時間 4,227 ms
ジャッジサーバーID
(参考情報)
judge2_1 / judge1_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 15
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

def v(n):
    r = 0
    k = 1
    while k <= n:
        r += f(n, k)
        r %= 10**9+7
        k *= 2
    return r

def f(n, k):
    if n&k == 0:
        n = (n//k)*k-1
    size = (n//k)//2*k + n%k+1
    a = sum_range(size)
    b = sum_range((size//k)+1)*k*k
    c = (size%k)*k*((size//k)+1)
    return a + b + c 

def sum_range(n):
    return n*(n-1)//2

print(v(int(input())))
0