func_code_string: #include <bits/stdc++.h>   using namespace std;   struct point {     long long x, y;     bool operator<(const point& t) const {       if (x == t.x) return y < t.y;       return x < t.x;     }     bool operator==(const point& t) const { return x == t.x && y == t.y; }   };   const long long INF = 1e18;   const long long mod = 1e9 + 7;   const long long MAXN = 1e6 + 69;   long long q = 1, m, n, x, y, z, k, l;   point a[MAXN];   string s;   set<point> ans;   vector<point> X;   vector<point> solve(const vector<point>& X) {     if (X.size() <= 1) return X;     long long mid = X.size() / 2;     vector<point> a, b;     for (long long i = 0; i < mid; i++) {       a.push_back(X[i]);     }     for (long long i = mid; i < X.size(); i++) {       b.push_back(X[i]);     }     a = solve(a);     b = solve(b);     long long middle = (a.back().x + b[0].x) / 2;     vector<point> res;     for (long long i = 0; i < a.size(); i++) {       res.push_back(a[i]);       res.push_back({middle, a[i].y});     }     for (long long i = 0; i < b.size(); i++) {       res.push_back(b[i]);       res.push_back({middle, b[i].y});     }     sort(res.begin(), res.end());     res.resize(unique(res.begin(), res.end()) - res.begin());     return res;   }   signed main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     cin >> n;     for (long long i = 1; i <= n; i++)       cin >> a[i].x >> a[i].y, ans.insert({a[i]});     sort(a + 1, a + n + 1);     for (long long i = 1; i <= n; i++) X.push_back(a[i]);     vector<point> ans = solve(X);     cout << ans.size() <<   n ;     for (point u : ans) cout << u.x <<     << u.y <<   n ;   }   