fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. using namespace std;
  5.  
  6.  
  7. unsigned long long iqpow(unsigned long long x,
  8. unsigned long long e,
  9. unsigned long long p)
  10. {
  11. unsigned long long res = 1;
  12. x %= p;
  13. for(;e;e>>=1)
  14. {
  15. if (e&1) res = (res*x)%p;
  16. x = (x*x)%p;
  17. }
  18. return res;
  19. }
  20.  
  21. int main()
  22. {
  23. unsigned long long n, m, l, mod = 1000000007, ans = 0;
  24. cin >> n >> m >> l;
  25. vector <unsigned long long> fac(n + 2, 1);
  26. for (int i = 2; i <= n + 1; ++ i){fac[i] = fac[i - 1] * i % mod;}
  27.  
  28. for (int k = 1; k <= l && m*k <= n; ++k)
  29. {
  30. ans = (ans + (fac[n] * iqpow(fac[n - m * k] * fac[m * k] % mod, mod - 2, mod) % mod)) % mod;
  31. }
  32. cout << ans;
  33. return 0;
  34. }
  35.  
Success #stdin #stdout 0.04s 11204KB
stdin
999999 6 999999
stdout
936253510