#include<bits/stdc++.h>
using namespace std;
int n=0;
double ans=0;
struct point {
double x;
double y;
}a[100001],m;
bool b[100001]={0};
int main() {
cin>>n;
for(int i=0; i<n; i++) {
cin>>a[i].x>>a[i].y;
m.x=min(m.x,a[i].x);
m.y=min(m.y,a[i].y);
}
int p0=-1,p1=-1,p2=-1;
for(int i=0; i<n; i++) {
p1=-1;
for(int j=0; j<n; j++) {
if(j!=p0&&(b[j]==0||j==p2)) {
if(p0==-1) {
if(p1==-1) {
p1=j;
} else {
if((a[p1].y+m.y)*(a[j].x+m.x)>=(a[j].y+m.y)*(a[p1].x+m.x)) {
p1=j;
}
}
} else {
if(p1==-1) {
p1=j;
} else {
if((a[p1].y-a[p0].y)*(a[j].x-a[p0].x)>=(a[j].y-a[p0].y)*(a[p1].x-a[p0].x)) {
p1=j;
}
}
}
}
}
if(p0==-1)p2=p1;
else {
ans+=sqrt((a[p0].x-a[p1].x)*(a[p0].x-a[p1].x)+(a[p0].y-a[p1].y)*(a[p0].y-a[p1].y));
if(p2==p1)break;
}
p0=p1;
b[p1]=1;
}
printf("%.2lf",ans);
return 0;
}
https://www.luogu.com.cn/record/125602255