fork(1) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ff(i, a, b) for(auto i=(a); i<=(b); ++i)
  4. #define ffr(i, b, a) for(auto i=(b); i>=(a); --i)
  5. #define nl "\n"
  6. #define ss " "
  7. #define getbit(i,j) ((i>>j)&1)
  8. #define sz size()
  9. #define pb emplace_back
  10. #define pf push_front
  11. #define fi first
  12. #define se second
  13. #define ms(a,x) memset(a, x, sizeof (a))
  14. #define re exit(0)
  15. #define __builtin_popcount cc
  16.  
  17. typedef long long ll;
  18. typedef unsigned long long ull;
  19. typedef long double ld;
  20. typedef vector<int> vi;
  21. typedef vector<ll> vll;
  22. typedef pair<int, int> pii;
  23. typedef pair<ll, ll> pll;
  24. typedef vector<pair<int, int> > vpii;
  25. typedef vector<pair<ll, ll> > vpll;
  26.  
  27. const ll mod=1e9+7, maxn=2e7+5, inf=1e18;
  28.  
  29. void rf(){
  30. ios_base::sync_with_stdio(false);
  31. cin.tie(nullptr); cout.tie(nullptr);
  32. if(fopen("o.inp","r")){
  33. freopen("o.inp","r",stdin); freopen("o.out","w",stdout);
  34. }
  35. }
  36.  
  37. ll n, m, f[maxn], f2[maxn];
  38.  
  39. ll bpow(ll a, ll b, ll m)
  40. {
  41. ll ans=1ll;
  42. while(b>0)
  43. {
  44. if(b&1) ans=ans*a%m;
  45. a=a*a%m;
  46. b>>=1;
  47. }
  48. return ans%m;
  49. }
  50.  
  51. ll bmul(ll a, ll b, ll m)
  52. {
  53. ll ans=1ll;
  54. if(!b) return 0;
  55. ll x = bmul(a, b/2, m);
  56. if(b&1) return ((x%m)*2+a)%m;
  57. else return ((x%m)*2)%m;
  58. }
  59.  
  60. void pre()
  61. {
  62. f[0]=1;
  63. ff(i, 1, 20000001) f[i]=f[i-1]*i, f[i]%=mod;
  64. f2[20000001]=bpow(f[20000001], mod-2, mod);
  65. ffr(i, 20000000, 0) f2[i]=f2[i+1]*(i+1), f2[i]%=mod;
  66. }
  67.  
  68. ll ckn(ll k, ll n)
  69. {
  70. if(k>n) return 0;
  71. ll a=f[n], b=(f2[k]*f2[n-k])%mod;
  72. return (a*b)%mod;
  73. }
  74.  
  75. int main()
  76. {
  77. rf();
  78. pre();
  79. cin>>n>>m;
  80. ll ans=0;
  81. ff(i, 0ll, min(m, n)) ans+=(ckn(i, n+m-i)*ckn(n-i, n+m-2*i))%mod, ans%=mod;
  82. cout<<ans%mod;
  83. re;
  84. }
  85.  
Success #stdin #stdout 0.22s 316136KB
stdin
1000000 1000000
stdout
290228117