import java.math.BigDecimal
import java.util.*

data class Point(val x: Int, val y: Int)

fun main(args: Array<String>) {
    var (x1, y1, x2, y2) = readLine()!!.split(' ').map(String::toInt)
    if (x1 > x2) { var t = x1; x1 = x2; x2 = t; t = y1; y1 = y2; y2 = t }
    val swapY: (Int) -> Int = if (y1 > y2) {{99999999 - it}} else {{it}}
    val p1 = Point(x1, swapY(y1))
    val p2 = Point(x2, swapY(y2))
    val n = readLine()!!.toInt()
    val points = ArrayList<Point>()
    for (i in 1..n) {
        val (x, y) = readLine()!!.split(' ').map(String::toInt)
        val p = Point(x, swapY(y))
        if (p.x in p1.x..p2.x && p.y in p1.y..p2.y) points.add(p)
    }
    points.sortBy { it.x }
    val ansMap = TreeMap<Int, Int>()
    ansMap.put(p1.y - 1, 0)
    for (p in points) {
        val fc = ansMap.floorEntry(p.y).value + 1
        val cy = ansMap.ceilingKey(p.y)
        if (cy != null) ansMap.remove(cy)
        ansMap.put(p.y, fc)
    }
    val q = ansMap.lastEntry().value
    var res = bd(100) * bd((p2.x - p1.x + p2.y - p1.y).toLong()) - (bd(20) - bdPI * bd(5)) * bd(q.toLong())
    if (q == p2.x - p1.x + 1 || q == p2.y - p1.y + 1) res += bdPI * bd(5)
    println(res.toPlainString())
}

fun bd(q: Long) = BigDecimal.valueOf(q)!!
val bdPI = BigDecimal("3.14159265358979323846264338327950288419716939937510")
