#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9 + 7;
double dp[2505][2505][3], dist[2505][2505], x[2505], y[2505];
int main() {
  ios::sync_with_stdio(false);
  int n;
  cin >> n;
  for (int k = 0; k < (n); k++) cin >> x[k] >> y[k];
  for (int i = 0; i < (n); i++)
    for (int j = 0; j < (n); j++)
      dist[i][j] =
          sqrt((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j]));
  for (int k = 1; k < n; k++)
    for (int i = 0; i < (n); i++) {
      int j = (i + k) % n;
      int pj = (i + k - 1) % n, ni = (i + 1) % n;
      dp[i][j][0] = max(dp[i][pj][0] + dist[pj][j], dp[ni][j][0] + dist[i][ni]);
      dp[i][j][1] =
          max(max(dp[ni][j][1] + dist[i][ni], dp[ni][j][2] + dist[i][j]),
              dp[i][pj][0] + dist[pj][j]);
      dp[i][j][2] =
          max(max(dp[i][pj][2] + dist[pj][j], dp[i][pj][1] + dist[i][j]),
              dp[ni][j][0] + dist[i][ni]);
    }
  double ans = 0.0;
  for (int i = 0; i < (n); i++)
    for (int j = 0; j < (3); j++) ans = max(ans, dp[(i + 1) % n][i][j]);
  cout << fixed << setprecision(10) << ans << endl;
  return 0;
}
