func_code_string: #include <bits/stdc++.h>   using namespace std;   int n;   double l;   int x[1005], b[1005];   const double eps = 1e-8;   double dp[1005];   double check(double mid) {     for (int i = 1; i <= n; i++) dp[i] = -1e10;     dp[0] = 0;     for (int i = 1; i <= n; i++) {       for (int j = 0; j < i; j++) {         dp[i] = max(dp[i],                     dp[j] - mid * (sqrt(abs(l - (x[i] - x[j])))) + (double)b[i]);       }     }     return dp[n];   }   void dfs(int step, double mid) {     if (step == 0) return;     for (int i = 0; i < step; i++) {       if (abs(dp[step] - (dp[i] - mid * sqrt(abs(x[step] - x[i] - l)) +                           (double)b[step])) < eps)         dfs(i, mid);     }     printf( %d  , step);   }   int main() {     scanf( %d%lf , &n, &l);     for (int i = 1; i <= n; i++) {       scanf( %d%d , &x[i], &b[i]);     }     double l = 0, r = 100000000000;     while (l + eps < r) {       double mid = (l + r) / 2;       double qwq = check(mid);       if (qwq > -eps)         l = mid;       else         r = mid;     }     check(l);     dfs(n, l);     return 0;   }   