lina_os

Untitled

May 26th, 2025
19
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.45 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. #define ll long long
  4. #define ul unsigned long long
  5. #define ld long double
  6. #define vll(v) vector<ll>v
  7. //#define vll(v,n) vector<ll>v(n);
  8. #define mll(m) map<ll,ll>m;
  9. #define sll(s) set<ll>s;
  10. #define iv(v) for(auto &i:v) cin >> i;
  11. #define ov(v) for(auto &i:v) cout << i << " ";
  12. #define Bismillah ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
  13.  
  14. using namespace std;
  15.  
  16. void solve() {
  17.     ll n;
  18.     cin >> n;
  19.     vector<pair<ll,ll>>v(n);
  20.     map<ll,set<ll>>m;
  21.     map<ll,set<ll>>mm;
  22.     multiset<ll>x;
  23.     multiset<ll>y;
  24.     for (auto &i:v) {
  25.         cin >> i.first >> i.second;
  26.         x.insert(i.first);
  27.         y.insert(i.second);
  28.         m[i.first].insert(i.second);
  29.         mm[i.second].insert(i.first);
  30.     }
  31.     set<ll>s;
  32.     ll ans=(*y.rbegin()-*y.begin()+1)*(*x.rbegin()-*x.begin()+1);
  33.     s.insert(ans);
  34.     //top left
  35.     ll xx=*x.begin();
  36.     ll yy=*m[xx].begin();
  37.     if (true) {
  38.         x.erase(x.find(xx));
  39.         y.erase(y.find(yy));
  40.         if (!x.empty()&& !y.empty()) {
  41.             if ((*y.rbegin()-*y.begin()+1)*(*x.rbegin()-*x.begin()+1)<*s.begin()) {
  42.                 ans=(*y.rbegin()-*y.begin()+1)*(*x.rbegin()-*x.begin()+1);
  43.                 if ((*y.rbegin()-*y.begin()+1)*(*x.rbegin()-*x.begin()+1)<=n)
  44.                     ans+=min((*y.rbegin()-*y.begin()+1),(*x.rbegin()-*x.begin()+1));
  45.                 s.insert(ans);
  46.             }
  47.         }
  48.         x.insert(xx);
  49.         y.insert(yy);
  50.     }
  51.  
  52.     //top right
  53.     yy=*y.rbegin();
  54.     xx=*mm[yy].begin();
  55.     if (true) {
  56.         x.erase(x.find(xx));
  57.         y.erase(y.find(yy));
  58.         if (!x.empty()&& !y.empty()) {
  59.             if ((*y.rbegin()-*y.begin()+1)*(*x.rbegin()-*x.begin()+1)<*s.begin()) {
  60.                 ans=(*y.rbegin()-*y.begin()+1)*(*x.rbegin()-*x.begin()+1);
  61.                 if ((*y.rbegin()-*y.begin()+1)*(*x.rbegin()-*x.begin()+1)<=n)
  62.                     ans+=min((*y.rbegin()-*y.begin()+1),(*x.rbegin()-*x.begin()+1));
  63.                 s.insert(ans);
  64.             }
  65.         }
  66.         x.insert(xx);
  67.         y.insert(yy);
  68.     }
  69.  
  70.     //bottom right
  71.     xx=*x.rbegin();
  72.     yy=*m[xx].rbegin();
  73.     if (true) {
  74.         x.erase(x.find(xx));
  75.         y.erase(y.find(yy));
  76.         if (!x.empty()&& !y.empty()) {
  77.             if ((*y.rbegin()-*y.begin()+1)*(*x.rbegin()-*x.begin()+1)<*s.begin()) {
  78.                 ans=(*y.rbegin()-*y.begin()+1)*(*x.rbegin()-*x.begin()+1);
  79.                 if ((*y.rbegin()-*y.begin()+1)*(*x.rbegin()-*x.begin()+1)<=n)
  80.                     ans+=min((*y.rbegin()-*y.begin()+1),(*x.rbegin()-*x.begin()+1));
  81.                 s.insert(ans);
  82.             }
  83.         }
  84.         x.insert(xx);
  85.         y.insert(yy);
  86.     }
  87.  
  88.     //bottom left
  89.     yy=*y.begin();
  90.     xx=*mm[yy].rbegin();
  91.     if (true) {
  92.         x.erase(x.find(xx));
  93.         y.erase(y.find(yy));
  94.         if (!x.empty()&& !y.empty()) {
  95.             if ((*y.rbegin()-*y.begin()+1)*(*x.rbegin()-*x.begin()+1)<*s.begin()) {
  96.                 ans=(*y.rbegin()-*y.begin()+1)*(*x.rbegin()-*x.begin()+1);
  97.                 if ((*y.rbegin()-*y.begin()+1)*(*x.rbegin()-*x.begin()+1)<=n)
  98.                     ans+=min((*y.rbegin()-*y.begin()+1),(*x.rbegin()-*x.begin()+1));
  99.                 s.insert(ans);
  100.             }
  101.         }
  102.         x.insert(xx);
  103.         y.insert(yy);
  104.     }
  105.     cout << *s.begin() << endl;
  106.  
  107. }
  108.  
  109. int main() {
  110.     Bismillah
  111.     ll t=1;
  112.     cin >> t;
  113.     while (t--) {
  114.         solve();
  115.     }
  116.     return 0;
  117. }
Advertisement
Add Comment
Please, Sign In to add comment