func_code_string: #include <bits/stdc++.h>   long long expow(long long a, long long b, long long p) {     long long v = 1;     for (; b; b >>= 1, a = a * a % p)       if (b & 1) v = v * a % p;     return v;   }   long long inv(long long a, long long p) { return expow(a, p - 2, p); }   using namespace std;   const int N = 1000 + 11;   const int M = 1000000007;   struct node {     int a, b, c, d, e;   } p[N];   node sub(node a, node b) {     return (node){a.a - b.a, a.b - b.b, a.c - b.c, a.d - b.d, a.e - b.e};   }   double mix(node a, node b) {     return 1.0 * a.a * b.a + a.b * b.b + a.c * b.c + a.d * b.d + a.e * b.e;   }   vector<int> ans;   int main() {     int k;     scanf( %d , &k);     for (int i = 0; i < k; i++) {       scanf( %d%d%d%d%d , &p[i].a, &p[i].b, &p[i].c, &p[i].d, &p[i].e);     }     for (int j = 0; j < k; j++) {       bool f = false;       for (int i = 0; i < k; i++)         if (i != j) {           for (int l = 0; l < k; l++)             if (l != i && l != j) {               node cha = sub(p[j], p[i]), cha2 = sub(p[j], p[l]);               double ding = mix(cha, cha2),                      di = sqrt(mix(cha, cha)) * sqrt(mix(cha2, cha2));               double xx = ding / di;               if (xx > 0 && xx <= 1) {                 f = true;                 break;               }             }           if (f) break;         }       if (!f) ans.push_back(j + 1);     }     int sz = ans.size();     printf( %d n , sz);     for (int j = 0; j < sz; j++) printf( %d n , ans[j]);     return 0;   }   