trafik

Untitled

Jul 10th, 2022
1,028
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.38 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <fstream>
  4. #include <algorithm>
  5. #include <set>
  6. #include <iomanip>
  7. #include <cmath>
  8. #include <map>
  9. #include <queue>
  10. #include <string>
  11. #define len(v) (int)v.size()
  12. #define all(v) v.begin(), v.end()
  13. #define rall(v) v.rbegin(), v.rend()
  14. #define ll long long
  15. using namespace std;
  16. const int maxn = 510;
  17. const ll inf = 1e9;
  18. const ll mod = 1e9 + 7;
  19.  
  20. ll binpow(ll a, ll n) {
  21.     if (n == 0)
  22.         return 1ll;
  23.     else if (n % 2)
  24.         return (binpow(a, n - 1) * a) % mod;
  25.     else {
  26.         ll b = binpow(a, n / 2) % mod;
  27.         return (b * b) % mod;
  28.     }
  29. }
  30.  
  31. void solve() {
  32.    
  33.    ll i1, i2, j1, j2;
  34.    cin >> i1 >> i2 >> j1 >> j2;
  35.    ll p2i1 = binpow(2, i1) % mod;
  36.    ll p3j1 = binpow(3, j1) % mod;
  37.    ll p3j2 = binpow(3, j2) % mod;
  38.    ll p2i2 = binpow(2, i2) % mod;
  39.    ll t = binpow(3, j2 - j1 + 1) % mod;
  40.    ll c = binpow(2, i2 - i1 + 1) % mod;
  41.    t--;
  42.    c--;
  43.  
  44.    //ll si = ((((p2i1 * p3j1) % mod) * t) % mod) / 2;
  45.    //ll s = (si * c) % mod;
  46.    //cout << s % mod << endl;
  47.    p2i1 = ((p2i1 * p3j1) % mod + mod) % mod;
  48.    p2i1 = ((p2i1 * t) % mod + mod) % mod;
  49.    p2i1 /= 2ll;
  50.    ll s = ((p2i1 * c) % mod + mod) % mod;
  51.    cout << s << endl;
  52.    
  53. }
  54.  
  55. signed main() {
  56.     ios::sync_with_stdio(false);
  57.     cin.tie(nullptr);
  58.     cout.tie(nullptr);
  59.    
  60.     int q; cin >> q;
  61.     while (q--)
  62.         solve();
  63. }
Advertisement
Add Comment
Please, Sign In to add comment