import Data.List
import Control.Monad
import qualified Data.Sequence as Sq
import Data.Foldable

main = do
  [x1,y1,x2,y2] <- map read.words<$>getLine :: IO [Int]
  n <- readLn
  xys <- replicateM n $ (\[x,y]->(x,y)).map read.words<$>getLine :: IO [(Int,Int)]
  print $ solve xys (x1,y1) (x2,y2)

solve :: [(Int,Int)]->(Int,Int)->(Int,Int)->Double
solve xys (x1,y1) (x2,y2)
  | n == 1 + min w h = 100*fromIntegral(w+h) - (20-5*pi)*fromIntegral(n-1) + (10*pi-20)
  | otherwise = 100*fromIntegral(w+h) - (20-5*pi)*fromIntegral n
  where
  xys' = filter inRange xys
  inRange (x,y) = l<=x && x<=r && d<=y && y<=u
  n = lisBy (\(_,a)(_,b)->a<b).toList.Sq.sortOn fst.Sq.fromList $ xys'
  [[l,r],[d,u]]=map sort [[x1,x2],[y1,y2]]
  [w,h] = [r-l,u-d]


lisBy :: (a->a->Bool) -> [a] -> Int
lisBy comp xs = lis
  where
  (_,_,lis) = foldr f (head xs,0,0) xs
  f cur (pre,len,lis) = (cur,len',max lis len')
    where len' = if comp pre cur then len+1 else 1