#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
const long double pi=3.1415926535897932384626433832795028841971;
const int maxn=200010;
int cnt,n,a[maxn],st[maxn],top,len;
long double ans;
struct node
{
	int x,y;
}s,t,p[maxn];
bool cmp(node a,node b)
{	
	return a.x<b.x;
}
int main()
{
	scanf("%d%d%d%d%d",&s.x,&s.y,&t.x,&t.y,&n);
	if(s.x>t.x) swap(s,t); 
	for(int i=1;i<=n;i++)
		scanf("%d%d",&p[i].x,&p[i].y);
	sort(p+1,p+n+1,cmp);
	cnt=0;
	for(int i=1;i<=n;i++)
		if((p[i].x>=s.x&&p[i].x<=t.x)&&((p[i].y>=s.y&&p[i].y<=t.y)||(p[i].y>=t.y&&p[i].y<=s.y))) a[++cnt]=p[i].y;
	if(s.y>t.y)
		for(int i=1;i<=cnt;i++)
			a[i]=-a[i];
	top=len=0;
	memset(st,0x3f,sizeof(st));
	for(int i=1;i<=cnt;i++)
	{
		int k=lower_bound(st+1,st+cnt+1,a[i])-st;
		st[k]=a[i];
		len=max(len,k);
	}
	/*for(int i=1;i<=cnt;i++)
		cout<<a[i]<<' ';
	cout<<endl;
	cout<<len<<endl;	*/
	ans=abs(s.x-t.x)+abs(s.y-t.y);
	ans*=100.0;
	ans+=(pi*5.0-20.0)*len;
	if(len==abs(t.y-s.y)+1||len==abs(t.x-s.x)+1) ans+=pi*5.0;
	printf("%.15Lf",ans);
	return 0;
} 
/*
2 5 2 3
3
3 2
5 3
2 4
2 3 3 6
3
1 1
2 4
3 5
*/