func_code_string: #include <bits/stdc++.h>   using namespace std;   template <class T>   T sqr(T X) {     return X * X;   }   const int maxn = 110;   const double zero = 1e-8;   int n, K;   double omiga;   struct COO {     double x, y;   } ob[maxn], nuclear;   double p[maxn], f[maxn][maxn];   double numb;   double ans;   void init() {     scanf( %d , &n);     scanf( %d%lf , &K, &omiga);     omiga = 1.0 - omiga / 1000;     scanf( %lf%lf , &nuclear.x, &nuclear.y);     for (int i = 1; i <= n; i++) scanf( %lf%lf , &ob[i].x, &ob[i].y);   }   int ZO(double comX, double comY) {     if (abs(comY - comX) <= zero) return 0;     if (comX < comY)       return -1;     else       return 1;   }   void work1(double R) {     for (int i = 1; i <= n; i++) {       double Di = sqr(nuclear.x - ob[i].x) + sqr(nuclear.y - ob[i].y);       if (ZO(Di, sqr(R)) <= 0)         p[i] = 1.0;       else         p[i] = exp(1 - Di / sqr(R));     }   }   void dp() {     for (int i = 0; i <= n; i++)       for (int j = 0; j <= n; j++) f[i][j] = 0.0;     f[0][0] = 1.0;     for (int i = 1; i <= n; i++) f[i][0] = f[i - 1][0] * (1 - p[i]);     for (int i = 1; i <= n; i++)       for (int j = 1; j <= i; j++)         f[i][j] = f[i - 1][j - 1] * p[i] + f[i - 1][j] * (1.0 - p[i]);     numb = 0.0;     for (int j = K; j <= n; j++) numb += f[n][j];   }   void solve() {     double Lx = 0, Rx = 4000.0;     while (ZO(Lx, Rx) < 0) {       double mid = (Lx + Rx) / 2;       work1(mid);       dp();       if (numb >= omiga)         Rx = mid;       else         Lx = mid;     }     ans = Lx;   }   void print() { printf( %.10lf n , ans); }   int main() {     init();     solve();     print();     return 0;   }   