結果
問題 |
No.381 名声値を稼ごう Extra
|
ユーザー |
![]() |
提出日時 | 2025-04-16 00:26:14 |
言語 | PyPy3 (7.3.15) |
結果 |
RE
|
実行時間 | - |
コード長 | 760 bytes |
コンパイル時間 | 374 ms |
コンパイル使用メモリ | 81,268 KB |
実行使用メモリ | 70,124 KB |
最終ジャッジ日時 | 2025-04-16 00:27:41 |
合計ジャッジ時間 | 577 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 1 RE * 1 |
ソースコード
def main(): MOD = 1004535809 N_str = input().strip() n = int(N_str) binary = bin(n)[2:] # Convert to binary without '0b' prefix L = len(binary) # Compute prefix sum of '1's in binary prefix_sum = [0] * (L + 1) for i in range(L): prefix_sum[i+1] = prefix_sum[i] + (binary[i] == '1') binary_rev = binary[::-1] max_extra = 0 for k in range(1, L + 1): available = L - k s = prefix_sum[available] if available >= 0 else 0 if (k - 1) < len(binary_rev): r = 1 if binary_rev[k-1] == '1' else 0 else: r = 0 current = r + s if current > max_extra: max_extra = current print(max_extra % MOD) if __name__ == "__main__": main()