Official
B - Modulo Number Editorial by nok0
この問題で求められていることは、 \(N\) を \(998244353\) で割ったあまりを答えることです。
あまりを求める演算子として、多くの言語では %
を用いることができます。Python では、以下のようなコードで AC を得ることができます。
実装例(Python):
n = int(input())
print(n % 998244353)
しかし c++ で同様の実装をすると WA となってしまいます。何故でしょうか?
この原因は、言語によって負の数に対するあまりの仕様が異なることです。言語によってはあまりが負になることがあるので、負の場合は \(0\) 以上になるように修正する必要があります。
実装例(c++):
#include <bits/stdc++.h>
using namespace std;
const int mod = 998244353;
int main() {
long long n;
cin >> n;
n %= mod;
if(n < 0) n += mod;
cout << n << endl;
}
posted:
last update: