modint の .val() の帰り値が int でなく unsigned int で帰ってくる
PCTprobability opened this issue · 2 comments
PCTprobability commented
.val() の帰り値が int ではなく unsigned int で帰ってきていそうな挙動を示します。
#include <bits/stdc++.h>
using namespace std;
#include <atcoder/all>
using namespace atcoder;
using mint = modint998244353;
using mint2 = modint1000000007;
int main(){
mint a = 1;
mint2 b = 2;
cout << a.val() - b.val() << endl;
}
上記のコードが atcoder のコードテスト環境で 4294967295 を返しました。
TumoiYorozu commented
確かにドキュメントと実装が合ってなさそうですね。ドキュメントの修正になりそうです
yosupo06 commented
確かにです、ありがとうございます 全体的にunsignedを使わないライブラリなのでintを返すように変更したいです。破壊的変更になりますが