复合赋值运算符是右结合的,所以 p *= inv[y - x + 1] %= M 是先算 inv[y - x + 1] %= M 再算 p *= inv[y - x + 1],
p *= inv[y - x + 1] %= M
inv[y - x + 1] %= M
p *= inv[y - x + 1]
所以应该写成 (p *= inv[y - x + 1]) %= M。
(p *= inv[y - x + 1]) %= M