func_code_string: #include <bits/stdc++.h>   using namespace std;   int i, j, k, l, s[4], s_indx = 0, m, n, o, p;   int main() {     float x[8], y[8], x1, y1, x2, y2, sq = 0, r = 0, indx = 0, a, b, c, d,                                       square[3];     for (int i = 0; i < 8; i++) {       cin >> x[i] >> y[i];     }     for (i = 0; i <= 4 && indx == 0; i++) {       for (j = i + 1; j <= 5 && indx == 0; j++) {         for (k = j + 1; k <= 6 && indx == 0; k++) {           for (l = k + 1; l <= 7 && indx == 0; l++) {             x1 = (x[i] + x[j] + x[k] + x[l]) / 4;             y1 = (y[i] + y[j] + y[k] + y[l]) / 4;             a = sqrt(pow(x1 - x[i], 2) + pow(y1 - y[i], 2));             b = sqrt(pow(x1 - x[j], 2) + pow(y1 - y[j], 2));             c = sqrt(pow(x1 - x[k], 2) + pow(y1 - y[k], 2));             d = sqrt(pow(x1 - x[l], 2) + pow(y1 - y[l], 2));             if (a == b && a == c && a == d) {               indx = 1;             }           }         }       }     }     i -= 1;     j -= 1;     k -= 1;     l -= 1;     for (int x = 0; x < 8; x++) {       if (x != i && x != j && x != k && x != l) {         s[s_indx] = x;         s_indx += 1;       }     }     m = s[0];     n = s[1];     o = s[2];     p = s[3];     if (indx == 1) {       square[0] = sqrt(pow(x[i] - x[j], 2) + pow(y[i] - y[j], 2));       square[1] = sqrt(pow(x[i] - x[k], 2) + pow(y[i] - y[k], 2));       square[2] = sqrt(pow(x[i] - x[l], 2) + pow(y[i] - y[l], 2));       sort(square, square + 3);       if (square[0] == square[1]) {         sq = 1;       } else {         r = 1;       }       x2 = (x[m] + x[n] + x[o] + x[p]) / 4;       y2 = (y[m] + y[n] + y[o] + y[p]) / 4;       a = sqrt(pow(x2 - x[m], 2) + pow(y2 - y[m], 2));       b = sqrt(pow(x2 - x[n], 2) + pow(y2 - y[n], 2));       c = sqrt(pow(x2 - x[o], 2) + pow(y2 - y[o], 2));       d = sqrt(pow(x2 - x[p], 2) + pow(y2 - y[p], 2));       if (a == b && a == c && a == d) {         square[0] = sqrt(pow(x[m] - x[n], 2) + pow(y[m] - y[n], 2));         square[1] = sqrt(pow(x[m] - x[o], 2) + pow(y[m] - y[o], 2));         square[2] = sqrt(pow(x[m] - x[p], 2) + pow(y[m] - y[p], 2));         sort(square, square + 3);         if (square[0] == square[1] && sq == 0) {           sq = 2;         } else {           r = 2;         }       }       if (sq != 0 && r != 0) {         cout <<  YES  << endl;         if (sq == 1) {           cout << i + 1 <<     << j + 1 <<     << k + 1 <<     << l + 1 << endl;           cout << m + 1 <<     << n + 1 <<     << o + 1 <<     << p + 1 << endl;         } else {           cout << m + 1 <<     << n + 1 <<     << o + 1 <<     << p + 1 << endl;           cout << i + 1 <<     << j + 1 <<     << k + 1 <<     << l + 1 << endl;         }       } else {         cout <<  NO ;       }     } else {       cout <<  NO ;     }   }   