atcoder/ac-library

modint の .val() の帰り値が int でなく unsigned int で帰ってくる

PCTprobability opened this issue · 2 comments

.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 を返しました。

確かにドキュメントと実装が合ってなさそうですね。ドキュメントの修正になりそうです

確かにです、ありがとうございます 全体的にunsignedを使わないライブラリなのでintを返すように変更したいです。破壊的変更になりますが