#include <bits/stdc++.h>
using namespace std;
int n;
double x[2505], y[2505];
double dp[2505][2505][2], ans;
inline double dist(int i, int j) {
  return sqrt((double)(x[i] - x[j]) * (x[i] - x[j]) +
              (y[i] - y[j]) * (y[i] - y[j]));
}
inline int pre(int x) {
  if (x == 1) return n;
  return x - 1;
}
inline int next(int x) {
  if (x == n) return 1;
  return x + 1;
}
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++) cin >> x[i] >> y[i];
  for (int l = 1; l < n; l++) {
    for (int i = 1; i <= n; i++) {
      int e = (i + l - 1) % n + 1;
      dp[i][e][0] = max(dp[next(i)][e][0] + dist(next(i), i),
                        dp[next(i)][e][1] + dist(i, e));
      dp[i][e][1] = max(dp[i][pre(e)][1] + dist(pre(e), e),
                        dp[i][pre(e)][0] + dist(i, e));
    }
  }
  for (int i = 1; i <= n; i++) {
    ans = max(ans, dp[i][i - 1][0]);
    ans = max(ans, dp[i][i - 1][1]);
  }
  printf("%.10f", ans);
  return 0;
}
