#include <bits/stdc++.h>
using namespace std;
double DP[2][2510][2510];
double X[2510], Y[2510];
double dis(int a, int b) {
  return sqrt((X[a] - X[b]) * (X[a] - X[b]) + (Y[a] - Y[b]) * (Y[a] - Y[b]));
}
int main() {
  ios::sync_with_stdio(false);
  memset(DP, 0, sizeof(DP));
  int N;
  cin >> N;
  for (int i = 0; i < N; i++) cin >> X[i] >> Y[i];
  for (int i = 2; i <= N; i++) {
    for (int s = 0; s < N; s++) {
      int e = s + i - 2;
      e %= N;
      int t;
      t = (s - 1 + N) % N;
      DP[0][t][e] = max(DP[0][t][e], DP[0][s][e] + dis(s, t));
      t = (e + 1) % N;
      DP[1][s][t] = max(DP[1][s][t], DP[0][s][e] + dis(s, t));
      t = (s - 1 + N) % N;
      DP[0][t][e] = max(DP[0][t][e], DP[1][s][e] + dis(e, t));
      t = (e + 1) % N;
      DP[1][s][t] = max(DP[1][s][t], DP[1][s][e] + dis(e, t));
    }
  }
  double res = 0;
  for (int i = 0; i < N; i++) {
    int j = (i - 1 + N) % N;
    res = max(res, DP[0][i][j]);
    res = max(res, DP[1][i][j]);
  }
  cout.precision(20);
  cout << res << endl;
  return 0;
}
