func_code_string: #include <bits/stdc++.h>   using namespace std;   const int mx = 3005;   const int N = 100005;   int n, a[mx][mx], b[mx][mx], ans[N];   pair<int, int> t[N];   inline int check(int lx, int rx, int ly, int ry) {     int cnt = b[rx][ry];     if (lx) cnt -= b[lx - 1][ry];     if (ly) cnt -= b[rx][ly - 1];     if (lx && ly) cnt += b[lx - 1][ly - 1];     int need = (rx - lx + 1) * (ry - ly + 1);     if (cnt != need) return -1;     if (ly)       if (a[rx][ly] == a[rx][ly - 1]) return -1;     if (lx)       if (a[lx][ry] == a[lx - 1][ry]) return -1;     for (int i = lx; i <= rx; i++)       if (a[i][ry] == a[i][ry + 1]) return false;     for (int i = ly; i <= ry; i++)       if (a[rx][i] == a[rx + 1][i]) return false;     return true;   }   int main() {     int n;     scanf( %d , &n);     for (int q = (0); q <= ((n)-1); q++) {       int x1, y1, x2, y2;       scanf( %d%d%d%d , &x1, &y1, &x2, &y2);       for (int i = x1; i < x2; i++)         for (int j = y1; j < y2; j++) a[i][j] = q + 1, b[i][j] = 1;       t[q] = make_pair(x1, y1);     }     for (int i = (0); i <= ((mx)-1); i++)       for (int j = (0); j <= ((mx)-1); j++) {         if (i - 1 >= 0) b[i][j] += b[i - 1][j];         if (j - 1 >= 0) b[i][j] += b[i][j - 1];         if (i - 1 >= 0 && j - 1 >= 0) b[i][j] -= b[i - 1][j - 1];       }     random_shuffle(t, t + n);     for (int q = (0); q <= ((n)-1); q++) {       int si = t[q].first, sj = t[q].second;       int ei = si, ej = sj;       while (ei < mx && ej < mx) {         int ch = check(si, ei, sj, ej);         if (ch == -1) break;         if (ch == 1) {           for (int i = si; i <= ei; i++)             for (int j = sj; j <= ej; j++) ans[a[i][j]] = 1;           vector<int> res;           for (int i = 0; i < N; i++)             if (ans[i]) res.push_back(i);           printf( YES %d n , (int)((res).end() - (res).begin()));           for (int i = (0); i <= (((int)((res).end() - (res).begin())) - 1);                i++) {             if (i) printf(   );             printf( %d , res[i]);           }           puts(  );           exit(0);         }         ei++;         ej++;       }     }     puts( NO );     return 0;   }   