long long mul(long long a, long long b, long long p) { long long d = (long long)(a * (long double)b / p + 0.5); long long c = a * b - d * p; return c < 0 ? c + p : c; }
请问具体的原理是什么?这样写 a,b,pa, b, pa,b,p 大概到多少会爆?