#include <bits/stdc++.h>
using namespace std;
const int N = 2505;
int n;
double x[N], y[N], f[N][N][2], ans;
int read() {
  int x = 0, f = 1;
  char s;
  while ((s = getchar()) > '9' || s < '0')
    if (s == '-') f = -1;
  while (s >= '0' && s <= '9')
    x = (x << 1) + (x << 3) + (s ^ 48), s = getchar();
  return x * f;
}
double d(const int i, const int j) {
  return sqrt((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j]));
}
int main() {
  n = read();
  for (int i = 0; i < n; ++i) x[i] = read(), y[i] = read();
  for (int len = 2; len <= n; ++len)
    for (int i = 0; i < n; ++i) {
      int j = (i + len - 1) % n;
      f[i][j][0] = max(d(i, (i + 1) % n) + f[(i + 1) % n][j][0],
                       d(i, j) + f[(i + 1) % n][j][1]);
      f[i][j][1] = max(d(i, j) + f[i][(j - 1 + n) % n][0],
                       d((j - 1 + n) % n, j) + f[i][(j - 1 + n) % n][1]);
    }
  for (int i = 0; i < n; ++i)
    ans = max(ans, max(f[i][(i - 1 + n) % n][0], f[i][(i + 1) % n][1]));
  printf("%.10f\n", ans);
  return 0;
}
