Hi, I was trying to craft a contest. It is partially reviewed by a coordinator. However I am unable to add more problems to it.
Not sure if it's a bug because I could comfortably add them ~3-4 months ago.
Hi, I was trying to craft a contest. It is partially reviewed by a coordinator. However I am unable to add more problems to it.
Not sure if it's a bug because I could comfortably add them ~3-4 months ago.
inline int inv(int a, int m) {
a %= m;
if (a < 0) a += m;
int b = m, u = 0, v = 1;
while (a) {
int t = b / a;
ux++;
b -= t * a; swap(a, b);
u -= t * v; swap(u, v);
}
assert(b == 1);
if (u < 0) u += m;
return u;
}
I bumped into this while reading tourist's code for today's Atcoder's F. It finds the inverse of a modulo m if it exists. All I could understand is that, b has to be 1 in the end for the inverse to exist. Could anyone help me understand this code?
TIA.