func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 2e5 + 7, M = 20;   const double eps = 1e-10, pi = acos(-1.0);   double dis[N], op[N][M];   struct node {     long long x, y;   } e[N];   int n, k, f[N][M];   struct query {     double x, y;   } w[N];   inline int read() {     int num = 0;     char t =  + , g = getchar();     while (g < 48 || 57 < g) t = g, g = getchar();     while (47 < g && g < 58)       num = (num << 1) + (num << 3) + g - 48, g = getchar();     if (t ==  - ) return 0 - num;     return num;   }   inline bool cmp(query a, query b) {     if (a.y == b.y) return a.x < b.x;     return a.y < b.y;   }   inline int getdis(int u) {     for (int i = 0; i <= 18; i++)       if ((1 << i) & k) u = f[u][i];     return u;   }   inline double abst(double u, int x) {     if (x < 0) return 2 * pi - u;     return u;   }   inline bool check(double u) {     for (int i = 1; i <= n; i++)       if (u > dis[i]) return false;     memset(f, 0, sizeof(f));     for (int i = 1; i <= n; i++)       w[i].x = abst(acos(e[i].x / dis[i]), e[i].y) - acos(u / dis[i]),       w[i].y = abst(acos(e[i].x / dis[i]), e[i].y) + acos(u / dis[i]);     for (int i = 1; i <= n; i++) {       if (w[i].y >= pi * 2) w[i].y = w[i].y - 2 * pi, w[i].x = w[i].x - 2 * pi;     }     sort(w + 1, w + n + 1, cmp);     f[0][0] = 1;     for (int i = 1; i <= n; i++)       w[i + n].x = w[i].x + 2 * pi, w[i + n].y = w[i].y + 2 * pi;     for (int i = 1; i <= (n << 1); i++) {       f[i][0] = f[i - 1][0];       while (w[f[i][0]].x <= w[i].y && f[i][0] <= (n << 1)) f[i][0]++;     }     f[n << 1 | 1][0] = n << 1 | 1;     for (int x = 1; x <= 18; x++)       for (int i = 1; i <= (n << 1 | 1); i++) f[i][x] = f[f[i][x - 1]][x - 1];     for (int i = 1; i <= n; i++)       if (getdis(i) >= i + n) return true;     return false;   }   int main() {     n = read(), k = read();     double l = 0.00, r = 200000.00, ans = 0.00;     for (int i = 1; i <= n; i++) e[i].x = read(), e[i].y = read();     for (int i = 1; i <= n; i++)       dis[i] = sqrt(1.0 * e[i].x * e[i].x + 1.0 * e[i].y * e[i].y);     while (r - l > eps) {       double d = (l + r) / 2.0;       if (check(d))         ans = d, l = d;       else         r = d;     }     printf( %.7lf n , ans);   }   