はじめに
ABC304のFを公式解説を見ながら実装したがWAを取れなかった.
理由
答えが負の数になる場合, %=
では負の数が返ってくるためMOD=998244353
を足す必要があった.
公式解説ではmodint
を使用しており内部で処理されていたと考えられる.
Qiita:【C++】負の数を正の数で割ったときの余りを求める
C++リファレンス:整数に対する除算と剰余算の丸め結果を規定C++11
C/C++で負の数の剰余は負になる
修正と結果
出力部分
cout << ans << endl;
を以下に変更.
MOD = 998244353;
cout << (ans + MOD) % MOD << endl;