Advertisement
Guest User

Untitled

a guest
Feb 21st, 2020
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define D(x) cout<<#x<<" = "<<x<<endl
  4. #define mod 1000000007
  5. #define ll long long
  6.  
  7. ll BM[105];
  8. ll INV[105];
  9.  
  10. ll bigmod ( ll a, ll p )
  11. {
  12. if ( p == 0 )return 1;
  13. if ( p & 1) return ( ( a % mod) * ( bigmod ( a, p - 1 ) ) ) % mod;
  14. ll tmp = bigmod ( a, p / 2);
  15. return ( tmp * tmp ) % mod;
  16. }
  17.  
  18. ll mul(ll a, ll b)
  19. {
  20. a = a%mod;
  21. b = b%mod;
  22. ll ret = (a*b) %mod;
  23. return ret;
  24. }
  25. ll sum(ll a, ll b)
  26. {
  27. a = a%mod;
  28. b = b%mod;
  29. ll ret = a+b;
  30. if(ret>=mod) ret-=mod;
  31. return ret;
  32. }
  33.  
  34. void init()
  35. {
  36. BM[0] = INV[0]=1;
  37. for(int i = 1;i<=105;i++){
  38. BM[i] = (BM[i-1]*i)%mod;
  39. INV[i] = bigmod(BM[i],mod-2);
  40. }
  41. }
  42. ll solve(ll a,ll b)
  43. {
  44. ll div = mul(INV[b],INV[a-b]);
  45. ll ret = mul(BM[a],div);
  46. return ret;
  47. }
  48.  
  49. int main()
  50. {
  51. ll tc, n, m, p, q, t;
  52. init();
  53. cin>>tc;
  54. while(tc--){
  55. cin>>n>>m>>p>>q>>t;
  56. int ans = 0;
  57. for(ll i = p ;i<=n;i++)
  58. {
  59. if(t-i<=m && t-i>=q){
  60. ans = sum(ans,mul(solve(n,i),solve(m,t-i)));
  61. }
  62. }
  63. cout<<ans<<endl;
  64. }
  65. return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement