fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const int mod=1000000007;
  5. using ll = long long;
  6.  
  7. ll sqr(ll x)
  8. {
  9. x%=mod;
  10. return x*x%mod;
  11. }
  12.  
  13. int main()
  14. {
  15. int T;
  16. scanf("%d",&T);
  17. while (T--) {
  18. ll n,a,b;
  19. scanf("%lld%lld%lld",&n,&a,&b);
  20. if (a+b>n) {
  21. puts("0");
  22. continue;
  23. }
  24. if (a<b) swap(a,b);
  25. ll ans = 0;
  26. ll sum = ((n-(a+b-1)+1)+(n-(a+1)+1))%mod*(b-1)%mod;
  27. if (sum&1) {
  28. sum=(sum+mod)/2;
  29. } else {
  30. sum/=2;
  31. }
  32.  
  33. ans = sum*sum%mod*4%mod;
  34. ans += (n-a+1)*sum%mod*(a-b+1)%mod*4%mod;
  35. ans += sqr(n-a+1)*sqr(a-b+1)%mod;
  36. ans %= mod;
  37.  
  38. ans = sqr(n-a+1)*sqr(n-b+1)%mod - ans;
  39. if (ans<0) ans+=mod;
  40. printf("%lld\n",ans);
  41. }
  42. return 0;
  43. }
Success #stdin #stdout 0s 4184KB
stdin
3
3 1 2
4 2 2
331895368 154715807 13941326

stdout
20
32
409369707