#include<bits/stdc++.h>
#define inf 1000000000
#define pi acos(-1.0)
#define N 200009
#define M 4000009
using namespace std;

int n,trtot,rt,sx,tx,sy,ty,T[M],ls[M],rs[M],dp[N];
struct node{ int x,y; }a[N];
bool cmp(node u,node v){ return u.x<v.x; }
void ins(int &k,int l,int r,int x,int y){
	if (!k) k=++trtot; T[k]=max(T[k],y);
	if (l==r) return;
	int mid=l+(r-l>>1);
	if (x<=mid) ins(ls[k],l,mid,x,y);
		else ins(rs[k],mid+1,r,x,y);
}
int getmax(int &k,int l,int r,int x){
	if (!k) return 0;
	if (r<=x) return T[k];
	int mid=l+(r-l>>1),ans=getmax(ls[k],l,mid,x);
	if (x>mid) ans=max(ans,getmax(rs[k],mid+1,r,x));
	return ans;
}
int main(){
	scanf("%d%d%d%d%d",&sx,&sy,&tx,&ty,&n);
	int i;
	for (i=1; i<=n; i++)
		scanf("%d%d",&a[i].x,&a[i].y);
	if (sx>tx){
		sx=-sx; tx=-tx;
		for (i=1; i<=n; i++) a[i].x=-a[i].x;
	}
	if (sy>ty){
		sy=-sy; ty=-ty;
		for (i=1; i<=n; i++) a[i].y=-a[i].y;
	}
	sort(a+1,a+n+1,cmp);
	int mx=0;
	for (i=1; i<=n; i++) if (sx<=a[i].x && a[i].x<=tx && sy<=a[i].y && a[i].y<=ty){
		dp[i]=getmax(rt,-inf,inf,a[i].y)+1;
		ins(rt,-inf,inf,a[i].y,dp[i]);
		mx=max(mx,dp[i]);
	}
	if (mx==min(tx-sx,ty-sy)+1)
		printf("%.15f\n",100.*(tx+ty-sx-sy)-5*(4-pi)*(mx-1)+10*(pi-2));
	else
		printf("%.15f\n",100.*(tx+ty-sx-sy)-5*(4-pi)*mx);
	return 0;
}
