AhmedAshraff

Untitled

May 22nd, 2025
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.16 KB | Source Code | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. #define boAshraf ios_base::sync_with_stdio(false); cin.tie(NULL);
  4. #define ll long long
  5. #define sz(s) (int)(s).size()
  6. #define all(s) (s).begin(),(s).end()
  7. using namespace std;
  8.  
  9. void File();
  10.  
  11. void sol();
  12.  
  13. const int mod = 1e9 + 7;
  14.  
  15. int mul(int a, int b) {
  16.     return 1ll * a * b % mod;
  17. }
  18. int add(int a,int b){
  19.     return (0ll+a+b)%mod;
  20. }
  21. int fp(int a, int p) {
  22.     if (!p)return 1;
  23.     int ret = fp(a, p >> 1);
  24.     ret = mul(ret, ret);
  25.     if (p & 1)ret = mul(ret, a);
  26.     return ret;
  27. }
  28.  
  29. int inv(int a) {
  30.     return fp(a, mod - 2);
  31. }
  32. int calc(int a){
  33.     return mul(mul(a,a+1),inv(2));
  34. }
  35. int main() {
  36.     boAshraf
  37. //    File();
  38.     freopen("rect.in", "r", stdin);
  39.     int t = 1;
  40.     cin >> t;
  41.     while (t--) {
  42.         sol();
  43.     }
  44.     return 0;
  45. }
  46.  
  47. void sol() {
  48.     int h, w;
  49.     cin >> h >> w;
  50.     int val=mul(2,calc((w-1)/2));
  51.     if(w%2==0)val=add(val,w/2);
  52.     int d=calc((h-1)/2);
  53.     int ans=mul(mul(d,2),val);
  54.     if(h%2==0)ans=add(ans,mul(h/2,val));
  55.     cout<<ans<<'\n';
  56. }
  57.  
  58. void File() {
  59. #ifndef ONLINE_JUDGE
  60.     freopen("input.txt", "r", stdin);
  61.     freopen("output.txt", "w", stdout);
  62. #endif
  63. }
Advertisement
Add Comment
Please, Sign In to add comment