1 int fac[maxn], facinv[maxn]; 2 void getInv(int n) { 3 fac[0] = 1; 4 for (int i = 1; i <= n; ++ i) { 5 fac[i] = (long long)fac[i - 1] * i % mod; 6 } 7 facinv[n] = fastPow(fac[n], mod - 2, mod); 8 for (int i = n - 1; i > 0; -- i) { 9 facinv[i] = (long long)facinv[i + 1] * (i + 1) % mod; 10 } 11 }