func_code_string: #include <bits/stdc++.h>   using namespace std;   template <typename T>   void maxtt(T& t1, T t2) {     t1 = max(t1, t2);   }   template <typename T>   void mintt(T& t1, T t2) {     t1 = min(t1, t2);   }   bool debug = 0;   int n, m, k;   int dx[4] = {0, 1, 0, -1}, dy[4] = {1, 0, -1, 0};   string direc =  URDL ;   const long long MOD2 = (long long)998244353 * (long long)998244353;   long long ln, lk, lm;   void etp(bool f = 0) {     puts(f ?  YES  :  NO );     exit(0);   }   void addmod(int& x, int y, int mod = 998244353) {     assert(y >= 0);     x += y;     if (x >= mod) x -= mod;     assert(x >= 0 && x < mod);   }   void et(int x = -1) {     printf( %d n , x);     exit(0);   }   long long fastPow(long long x, long long y, int mod = 998244353) {     long long ans = 1;     while (y > 0) {       if (y & 1) ans = (x * ans) % mod;       x = x * x % mod;       y >>= 1;     }     return ans;   }   long long gcd1(long long x, long long y) { return y ? gcd1(y, x % y) : x; }   pair<pair<int, int>, int> p[100035][4];   void cal(set<pair<pair<int, int>, int> >* S) {     n = (int)S[0].size();     if (n == 1) return;     set<pair<pair<int, int>, int> >::iterator it[4];     vector<int> vp(5, -(1 << 30));     for (int(j) = 0; (j) < (int)(4); (j)++) it[j] = S[j].begin();     for (int(cnt) = 1; (cnt) <= (int)(n); (cnt)++) {       for (int(j) = 0; (j) < (int)(4); (j)++)         maxtt(vp[j], (it[j]++)->first.second);       for (int(j) = 0; (j) < (int)(4); (j)++)         if (vp[j] <= it[j]->first.first) {           set<pair<pair<int, int>, int> > T[4];           auto it = S[j].begin();           for (int(i) = 0; (i) < (int)(cnt); (i)++) {             int id = it->second;             it++;             for (int(j) = 0; (j) < (int)(4); (j)++) {               T[j].insert(p[id][j]);               S[j].erase(p[id][j]);             }           }           cal(S);           cal(T);           return;         }     }     etp();   }   void fmain(int tid) {     scanf( %d , &n);     for (int(i) = 1; (i) <= (int)(n); (i)++) {       int a, b, c, d;       scanf( %d%d%d%d , &a, &b, &c, &d);       p[i][0] = {{a, c}, i};       p[i][1] = {{b, d}, i};       p[i][2] = {{-c, -a}, i};       p[i][3] = {{-d, -b}, i};     }     set<pair<pair<int, int>, int> > s[4];     for (int(i) = 1; (i) <= (int)(n); (i)++)       for (int(j) = 0; (j) < (int)(4); (j)++) s[j].insert(p[i][j]);     cal(s);     etp(1);   }   int main() {     int t = 1;     for (int(i) = 1; (i) <= (int)(t); (i)++) {       fmain(i);     }     return 0;   }   