import Data.List
import Control.Monad
import qualified Data.IntMap as IM

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)]
  let (fx,fy) = (if x2<x1 then negate else id, if y2<y1 then negate else id)
  let xys' = map (\(x,y)->(fx x,fy y)) xys
  let (p1,p2) = ((fx x1,fy y1),(fx x2,fy y2))
  print $ solve xys' p1 p2

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) = x1<=x && x<=x2 && y1<=y && y<=y2
  n = lisBy (\(_,a)(_,b)->a<b).IM.toAscList.IM.fromList $ xys'
  [w,h] = [x2-x1,y2-y1]


lisBy :: (a->a->Bool) -> [a] -> Int
lisBy = undefined