LL multiplication (LL a, LL b, LL mod) {
LL res = (a * ((long double) b / (long double) mod));
// put the number in long double, and then reduce the value to LL, forget
overflow.
res = a * b - res * mod;
if (res >= mod) res -= mod;
if (res < 0) res += mod;
return res;
}
No comments:
Post a Comment