| 6 | long long fact[200009]; |
| 7 | |
| 8 | long long modpow(long long a, long long b, long long m) { |
| 9 | // �J��Ԃ����@�ip �� a^1, a^2, a^4, a^8, ... �Ƃ������l���Ƃ�j |
| 10 | long long p = a, Answer = 1; |
| 11 | for (int i = 0; i < 30; i++) { |
| 12 | if ((b & (1 << i)) != 0) { Answer *= p; Answer %= m; } |
| 13 | p *= p; p %= m; |
| 14 | } |
| 15 | return Answer; |
| 16 | } |
| 17 | |
| 18 | long long Division(long long a, long long b, long long m) { |
| 19 | return (a * modpow(b, m - 2, m)) % m; |