func_code_string: #include <bits/stdc++.h>   using namespace std;   vector<pair<int, int> > points;   pair<int, int> dif(pair<int, int> pa, pair<int, int> pb) {     pair<int, int> res;     res.first = pb.first - pa.first;     res.second = pb.second - pa.second;     return res;   }   int dot(pair<int, int> a, pair<int, int> b) {     return a.first * b.first + a.second * b.second;   }   double dist(pair<int, int> a, pair<int, int> b) {     return ((double)((a.first - b.first) * (a.first - b.first) +                      (a.second - b.second) * (a.second - b.second)));   }   double len(pair<int, int> a) { return dist(a, make_pair(0, 0)); }   int main() {     for (int i = 0; i < 8; i++) {       int x, y;       cin >> x >> y;       points.push_back(make_pair(x, y));     }     vector<int> perm;     for (int i = 0; i < 8; i++) perm.push_back(i);     int cnt = 0;     bool found = false;     do {       cnt++;       bool fs = false, ss = false;       bool fis = true, sif = true;       pair<int, int> a = points[perm[0]];       pair<int, int> b = points[perm[1]];       pair<int, int> c = points[perm[2]];       pair<int, int> d = points[perm[3]];       pair<int, int> e = points[perm[4]];       pair<int, int> f = points[perm[5]];       pair<int, int> g = points[perm[6]];       pair<int, int> h = points[perm[7]];       pair<int, int> ab = dif(a, b);       pair<int, int> bc = dif(b, c);       pair<int, int> cd = dif(c, d);       pair<int, int> da = dif(d, a);       fs = (dot(ab, bc) == 0 && dot(bc, cd) == 0 && dot(cd, da) == 0 &&             dot(da, ab) == 0 && fabs(len(ab) - len(bc)) < 0.01 &&             fabs(len(bc) - len(cd)) < 0.01 && fabs(len(cd) - len(da)) < 0.01);       pair<int, int> ef = dif(e, f);       pair<int, int> fg = dif(f, g);       pair<int, int> gh = dif(g, h);       pair<int, int> he = dif(h, e);       ss = (dot(ef, fg) == 0 && dot(fg, gh) == 0 && dot(gh, he) == 0 &&             dot(he, ef) == 0 && fabs(len(ef) - len(gh)) < 0.01 &&             fabs(len(fg) - len(he)) < 0.01);       if (ss && fs) {         found = true;         break;       }     } while (next_permutation(perm.begin(), perm.end()));     if (found) {       cout <<  YES  << endl;       for (int i = 0; i < 4; i++) {         if (i != 0) cout <<    ;         cout << perm[i] + 1;       }       cout << endl;       for (int i = 4; i < 8; i++) {         if (i != 4) cout <<    ;         cout << perm[i] + 1;       }       cout << endl;     } else       cout <<  NO  << endl;     return 0;   }   