func_code_string: #include <bits/stdc++.h>   using namespace std;   const int mx = 2e3 + 505;   struct node {     double x, y;   } a[mx];   double pw(double x) { return x * x; }   double dist(node a, node b) { return sqrt(pw(a.x - b.x) + pw(a.y - b.y)); }   double f[2][mx], g[2][mx];   int main() {     int n;     scanf( %d , &n);     for (int i = 0; i < n; i++) scanf( %lf%lf , &a[i].x, &a[i].y);     for (int i = 1; i < n; i++)       for (int j = 0; j < n; j++) {         g[i % 2][j] =             max(g[(i + 1) % 2][(j - 1 + n) % n] + dist(a[j], a[(j - 1 + n) % n]),                 f[(i + 1) % 2][(j - i + n) % n] + dist(a[j], a[(j - i + n) % n]));         f[i % 2][j] =             max(f[(i + 1) % 2][(j + 1) % n] + dist(a[j], a[(j + 1) % n]),                 g[(i + 1) % 2][(i + j) % n] + dist(a[j], a[(i + j) % n]));       }     double ans = 0;     for (int i = 0; i < n; i++)       ans = max(ans, max(f[(n - 1) % 2][i], g[(n - 1) % 2][i]));     printf( %.10f n , ans);     return 0;   }   