Zeinab_Hamdy

Untitled

Mar 17th, 2025
376
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.43 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define nl "\n"
  4. #define fi first
  5. #define se second
  6. #define pb push_back
  7. #define ll long long
  8. #define RV return void
  9. #define sz(x) int(x.size())
  10. #define all(v) v.begin(), v.end()
  11. #define rall(v) v.rbegin(), v.rend()
  12.  
  13.  
  14.  
  15. void solve(){
  16.    
  17.    
  18.     int n,q; cin >> n >> q;
  19.  
  20.     map < ll, set < ll > > mpx;
  21.     map < ll, set < ll > > mpy;
  22.     for(int i =0 ; i < n ; i++){
  23.         ll x,y; cin >> x >> y;
  24.         mpx[x].insert(y);
  25.         mpy[y].insert(x);
  26.     }
  27.  
  28.  
  29.  
  30.  
  31.     while(q--){
  32.         ll op,x,y; cin >> op;
  33.  
  34.         if(op==3){
  35.  
  36.             ll ans =0,
  37.             mn = mpx.begin() -> first,
  38.             mx = mpx.rbegin() -> first;
  39.             ans = max(ans, abs(mx-mn) + abs(*mpx[mn].begin() - *mpx[mx].begin()));
  40.             ans = max(ans, abs(mx-mn) + abs(*mpx[mn].rbegin() - *mpx[mx].begin()));
  41.             ans = max(ans, abs(mx-mn) + abs(*mpx[mn].begin() - *mpx[mx].rbegin()));
  42.             ans = max(ans, abs(mx-mn) + abs(*mpx[mn].rbegin() - *mpx[mx].rbegin()));
  43.  
  44.  
  45.             ll mn2 = mpy.begin() -> first,
  46.             mx2 = mpy.rbegin() -> first;
  47.             ans = max(ans, abs(mx2-mn2) + abs(*mpy[mn2].begin() - *mpy[mx2].begin()));
  48.             ans = max(ans, abs(mx2-mn2) + abs(*mpy[mn2].rbegin() - *mpy[mx2].begin()));
  49.             ans = max(ans, abs(mx2-mn2) + abs(*mpy[mn2].begin() - *mpy[mx2].rbegin()));
  50.             ans = max(ans, abs(mx2-mn2) + abs(*mpy[mn2].rbegin() - *mpy[mx2].rbegin()));
  51.  
  52.  
  53.             ans = max(ans, abs(mx2- * mpx[mn].begin()) + abs(*mpy[mx2].begin() - mn));
  54.             ans = max(ans, abs(mx2- * mpx[mx].begin()) + abs(*mpy[mx2].begin() - mx));
  55.             ans = max(ans, abs(mn2- * mpx[mn].begin()) + abs(*mpy[mn2].begin() - mn));
  56.             ans = max(ans, abs(mn2- * mpx[mx].begin()) + abs(*mpy[mn2].begin() - mx));
  57.  
  58.             ans = max(ans, abs(mx2- * mpx[mn].rbegin()) + abs(*mpy[mx2].rbegin() - mn));
  59.             ans = max(ans, abs(mx2- * mpx[mx].rbegin()) + abs(*mpy[mx2].rbegin() - mx));
  60.             ans = max(ans, abs(mn2- * mpx[mn].rbegin()) + abs(*mpy[mn2].rbegin() - mn));
  61.             ans = max(ans, abs(mn2- * mpx[mx].rbegin()) + abs(*mpy[mn2].rbegin() - mx));
  62.  
  63.             ans = max(ans, abs(mx2- * mpx[mn].begin()) + abs(*mpy[mx2].rbegin() - mn));
  64.             ans = max(ans, abs(mx2- * mpx[mx].begin()) + abs(*mpy[mx2].rbegin() - mx));
  65.             ans = max(ans, abs(mn2- * mpx[mn].begin()) + abs(*mpy[mn2].rbegin() - mn));
  66.             ans = max(ans, abs(mn2- * mpx[mx].begin()) + abs(*mpy[mn2].rbegin() - mx));
  67.  
  68.             ans = max(ans, abs(mx2- * mpx[mn].rbegin()) + abs(*mpy[mx2].begin() - mn));
  69.             ans = max(ans, abs(mx2- * mpx[mx].rbegin()) + abs(*mpy[mx2].begin() - mx));
  70.             ans = max(ans, abs(mn2- * mpx[mn].rbegin()) + abs(*mpy[mn2].begin() - mn));
  71.             ans = max(ans, abs(mn2- * mpx[mx].rbegin()) + abs(*mpy[mn2].begin() - mx));
  72.  
  73.  
  74.             cout << ans << nl;
  75.  
  76.         }else if (op==2){
  77.             cin >> x >> y;
  78.             mpx[x].erase(y);
  79.             if(mpx[x].empty()) mpx.erase(x);
  80.             mpy[y].erase(x);
  81.             if(mpy[y].empty()) mpy.erase(y);
  82.         }else{
  83.             cin >> x >> y ;
  84.             mpx[x].insert(y);
  85.             mpy[y].insert(x);
  86.         }
  87.     }
  88.    
  89. }
  90.  
  91.  
  92. int main(){
  93.     ios_base::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr);  
  94.     int t=1;
  95.         // cin >> t ;
  96.     for(int i=1 ; i <= t ; i++){
  97.         solve();
  98.     }
  99.     return 0;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment