func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, L, a[1005], b[1005], ans[1005], cc;   double dp[1005], dis[1005][1005];   int pre[1005];   inline bool check(double K) {     dp[0] = 0;     for (int i = 1; i <= n; ++i) {       dp[i] = -1e9;       for (int j = 0; j < i; ++j) {         double v = dp[j] + K * b[i] - dis[j][i];         if (v > dp[i]) dp[i] = v, pre[i] = j;       }     }     return dp[n] >= 0;   }   void output(int x) {     if (!x) return;     output(pre[x]);     printf( %d  , x);   }   int main() {     scanf( %d%d , &n, &L);     for (int i = 1; i <= n; ++i) scanf( %d%d , a + i, b + i);     for (int i = 0; i <= n; ++i)       for (int j = i + 1; j <= n; ++j) dis[i][j] = sqrt(abs(a[j] - a[i] - L));     double l = 0, r = 1e9, mid;     while (l + 1e-8 <= r) {       mid = (l + r) / 2;       if (check(mid))         r = mid;       else         l = mid;     }     check(r);     output(n);     return 0;   }   