fork download
  1. #include <bits/stdc++.h>
  2. #define FOR(i, a, b) for (int i = (a); i <= (b); i++)
  3. #define FOD(i, a, b) for (int i = (a); i >= (b); i--)
  4. #pragma GCC optimize("O3,unroll-loops")
  5. #define TIME (1.0 * clock() / CLOCKS_PER_SEC)
  6. using ll=long long;
  7. #define el cout<<'\n'
  8. using namespace std;
  9. const int mod=1e9+7;
  10. const int MAXN=1e5+10;
  11.  
  12. int mul(int a, int b){return 1ll*a*b%mod;}
  13. int fact[MAXN];
  14. int inv[MAXN];
  15. int Pow(ll a, ll n){
  16. ll ans=1;
  17. a%=mod;
  18. while(n){
  19. if(n&1){
  20. ans=(ans*a)%mod;
  21. }
  22. a=(a*a)%mod;
  23. n>>=1;
  24. }
  25. return ans;
  26. }
  27. void init(){
  28. fact[0]=1;
  29. FOR(i,1,MAXN-1){
  30. fact[i]=mul(i,fact[i-1]);
  31. }
  32. inv[MAXN-1]=Pow(fact[MAXN-1],mod-2);
  33. FOD(i,MAXN-2,0){
  34. inv[i]=mul(inv[i+1],i+1);
  35. }
  36. }
  37. ll C(int k, int n){
  38. if(n<k||k<0) return 0;
  39. else return mul(mul(fact[n],inv[k]),inv[n-k]);
  40. }
  41. int main(){
  42. init();
  43. return 0^0;
  44. }
Success #stdin #stdout 0.01s 5320KB
stdin
Standard input is empty
stdout
Standard output is empty