| 24 | } |
| 25 | |
| 26 | long long inv_mod(long long x, long long m) { |
| 27 | assert(1 <= m); |
| 28 | auto z = internal::inv_gcd(x, m); |
| 29 | assert(z.first == 1); |
| 30 | return z.second; |
| 31 | } |
| 32 | |
| 33 | // (rem, mod) |
| 34 | std::pair<long long, long long> crt(const std::vector<long long>& r, |