#include <bits/stdc++.h>

using namespace std;

using ll = long long;
using db = double;
using vi = vector<int>;
#define pb push_back
#define fir first
#define sec second
const db pi = atan(1)*4; 

const int maxn = 200006; 

using pii = pair<int,int>; 
pii a[maxn]; 
int X1, Y1, X2, Y2; 
int N, n; 
bool flag = false; 
int f[maxn]; 

int main() {
	scanf( "%d%d%d%d", &X1, &Y1, &X2, &Y2 ); 
	if (X1 >= X2) {
		swap(X1, X2); 
		swap(Y1, Y2); 
	}
	if (Y1 > Y2) {
		flag = true; 
		Y1 = -Y1; 
		Y2 = -Y2; 
	}
	n = 0; 
	scanf( "%d", &N ); 
	for (int i = 1; i <= N; ++i) {
		int x, y; 
		scanf( "%d%d", &x, &y ); 
		if (flag) y = -y; 
		if (X1 <= x && x <= X2 && Y1 <= y && y <= Y2) {
			a[n++] = make_pair(x,y); 
		}
	}
	//if (X1 == X2 || Y1 == Y2) {
		//printf( "%.12f\n", db(Y2-Y1+X2-X1)*100 + (pi*10-20)*(n>0)); 
		//return 0; 
	//}
	sort(a,a+n); 
	int ans = 0; 
	set<int> S; 
	for (int i = 0; i < n; ++i) {
		f[i] = 1; 
		auto u = S.lower_bound(a[i].sec); 
		if (u != S.end()) S.erase(u); 
		S.insert(a[i].sec); 
		//for (int j = 0; j < i; ++j) 
			//if (a[j].sec < a[i].sec) f[i] = max(f[i],f[j]+1); 
		//ans = max(ans, f[i]); 
	}
	ans = S.size(); 
	int bb = min(X2-X1, Y2-Y1); 
	printf( "%.13f\n", db(Y2-Y1+X2-X1)*100 + (pi*5-20)*min(ans,bb)+(ans>bb)*(pi*10-20) ); 
	
}
