Saleh127

At Coder ABC154_F

Jan 16th, 2022 (edited)
97
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /***
  2.  created: 2022-01-16-18.51.36
  3. ***/
  4.  
  5. #include <bits/stdc++.h>
  6. using namespace std;
  7. #define ll long long
  8. #define test int tt; cin>>tt; for(int cs=1;cs<=tt;cs++)
  9. #define get_lost_idiot return 0
  10. #define nl '\n'
  11.  
  12. ll f[2000005];
  13. ll inv[2000005];
  14. ll mod=1e9+7;
  15.  
  16. ll bigmod(ll a,ll c,ll d)
  17. {
  18.     if(c==0) return 1LL;
  19.     ll x=bigmod(a,c/2,d);
  20.     x=(x*x)%d;
  21.     if(c%2==1LL)
  22.     {
  23.         x=(x*a)%d;
  24.     }
  25.     return x;
  26. }
  27.  
  28. void fact()
  29. {
  30.      f[0]=inv[0]=1;
  31.  
  32.      for(ll i=1;i<=2000002;i++)
  33.      {
  34.           f[i]=(f[i-1]*i)%mod;
  35.           inv[i]=(inv[i-1]*bigmod(i,mod-2,mod))%mod;
  36.      }
  37. }
  38.  
  39. ll nCr(ll n,ll r)
  40. {
  41.      if(n<=0 || r<=0) return 0;
  42.  
  43.      ll x=(((f[n+r]*inv[n])%mod)*inv[r])%mod;
  44.  
  45.      x+=mod;
  46.  
  47.      return x%mod;
  48. }
  49.  
  50. int main()
  51. {
  52.    ios_base::sync_with_stdio(0);
  53.    cin.tie(0);cout.tie(0);
  54.  
  55.  
  56.    fact();
  57.  
  58.    ll r1,r2,c1,c2;
  59.  
  60.    cin>>r1>>c1>>r2>>c2;
  61.  
  62.    ll ans;
  63.  
  64.    r1++,r2++,c1++,c2++;
  65.  
  66.    ans=nCr(r2,c2)+nCr(r1-1,c1-1)-nCr(r1-1,c2)-nCr(r2,c1-1);
  67.  
  68.    ans%=mod;
  69.    ans+=mod;
  70.    cout<<ans%mod<<nl;
  71.  
  72.  
  73.    get_lost_idiot;
  74. }
  75.  
RAW Paste Data Copied