結果
| 問題 | No.3431 popcount & sum (Easy) |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-01-12 22:27:06 |
| 言語 | C++17 (gcc 15.2.0 + boost 1.89.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,002 bytes |
| 記録 | |
| コンパイル時間 | 1,929 ms |
| コンパイル使用メモリ | 214,608 KB |
| 実行使用メモリ | 7,852 KB |
| 最終ジャッジ日時 | 2026-01-12 22:27:09 |
| 合計ジャッジ時間 | 3,105 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 3 WA * 6 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
// 定数 (hằng số modulo)
const long long もど = 998244353;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int にゅうりょく_n;
cin >> にゅうりょく_n;
// 各数の1ビットの個数を保存する配列
vector<int> ビットのかず(にゅうりょく_n + 1);
for(int すう = 0; すう <= にゅうりょく_n; すう++){
ビットのかず[すう] = __builtin_popcount(すう);
}
long long こたえ = 0;
// すべての(a,b)ペアを調べる
for(int a = 0; a <= にゅうりょく_n; a++){
for(int b = 0; b <= にゅうりょく_n; b++){
// p(a) == p(b) のときだけ加算
if(ビットのかず[a] == ビットのかず[b]){
こたえ += (a & b);
if(こたえ >= もど) こたえ -= もど;
}
}
}
// 結果を出力
cout << こたえ % もど;
return 0;
}