func_code_string: #include <bits/stdc++.h>   using namespace std;   long long sqr(long long x) { return x * x; }   bool done = false;   int p[8][3];   bool same(double x, double y) { return abs(x - y) < 1e-9; }   int cnt = 0;   void backtr(int idx) {     if (done) return;     if (idx == 7) {       cnt++;       map<long long, int> ck;       vector<long long> t(28), v(3, 1);       int idx = 0, idx2 = 0;       long long l1 = -1, l2 = -1, l3 = -1;       for (int i = 0; i < 8; ++i)         for (int j = i + 1; j < 8; ++j) {           t[idx++] = sqr(p[i][0] - p[j][0]) + sqr(p[i][1] - p[j][1]) +                      sqr(p[i][2] - p[j][2]);           if (!ck.count(t[idx - 1])) {             if (idx2 == 3) return;             v[idx2++] = t[idx - 1], ck[t[idx - 1]] = 1;           } else             ck[t[idx - 1]]++;         }       sort(v.begin(), v.end());       if (ck[v[0]] == 12 && ck[v[1]] == 12 && ck[v[2]] == 4 && 2 * v[0] == v[1] &&           v[0] + v[1] == v[2]) {         done = true;         printf( YES n );         for (int i = 0; i < 8; ++i)           printf( %d %d %d n , p[i][0], p[i][1], p[i][2]);       }     } else {       do {         backtr(idx + 1);         if (done) return;       } while (next_permutation(p[idx], p[idx] + 3));       sort(p[idx], p[idx] + 3);     }   }   int main() {     clock_t start_time, end_time;     start_time = clock();     for (int i = 0; i < 8; ++i)       scanf( %d%d%d , &p[i][0], &p[i][1], &p[i][2]), sort(p[i], p[i] + 3);     backtr(0);     if (!done) printf( NO );     end_time = clock();   }   