結果
| 問題 | No.3431 popcount & sum (Easy) |
| コンテスト | |
| ユーザー |
mentos_grape
|
| 提出日時 | 2026-01-11 14:31:30 |
| 言語 | Python3 (3.14.2 + numpy 2.4.0 + scipy 1.16.3) |
| 結果 |
AC
|
| 実行時間 | 277 ms / 2,000 ms |
| コード長 | 736 bytes |
| 記録 | |
| コンパイル時間 | 520 ms |
| コンパイル使用メモリ | 20,932 KB |
| 実行使用メモリ | 15,364 KB |
| 最終ジャッジ日時 | 2026-01-11 14:31:35 |
| 合計ジャッジ時間 | 2,732 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 9 |
ソースコード
import sys
def solve():
# 入力の読み込み
try:
input_data = sys.stdin.read().split()
if not input_data:
return
n = int(input_data[0])
except ValueError:
return
MOD = 998244353
popcounts = [bin(i).count('1') for i in range(n + 1)]
total_sum = 0
# a を 0 から n まで
for a in range(n + 1):
pc_a = popcounts[a]
# b を a から n まで
for b in range(a, n + 1):
# p(a) == p(b) の場合のみ計算
if pc_a == popcounts[b]:
# a & b を加算
total_sum += (a & b)
total_sum %= MOD
print(total_sum)
if __name__ == '__main__':
solve()
mentos_grape