circle
题号:NC252512
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

给定一个 n\times m 的长方形,左下角坐标为 (0,0),右上角坐标为 (n,m),边平行于坐标轴。长方形内给定 k 个点,特别地,保证所有点共线

在长方形内找到最大的圆,使得不存在长方形边上的点或给定的点被严格包含,即,允许与长方形边界相切,或有给定的点在圆周上。

输入描述:

第一行输入三个整数 n,m,k

接下来 k 行,每行输入两个整数 x_i,y_i,表示第 i 个给定的点 (x_i,y_i)

输出描述:

输出一行一个数,表示满足条件的最大的圆的半径。若你的答案和标准答案的绝对或相对误差不超过 10^{-9},则你的答案算作正确答案。
示例1

输入

复制
3 2 1
2 1

输出

复制
1.0000000000
示例2

输入

复制
13 11 2
1 2
8 9

输出

复制
5.0000000000

说明

最优解如下图所示:
示例3

输入

复制
5 4 2
1 2
4 3

输出

复制
1.7620999227

说明

精确值为 25-6\sqrt{15}
示例4

输入

复制
100 100 3
50 90
70 70
90 50

输出

复制
41.0050506339
示例5

输入

复制
932670837 986324298 10
923804617 602139507
905804817 573642507
874665163 524342697
828298908 450936372
769644715 358075977
706375418 257909022
647627313 164899947
601334846 91610442
570216434 42344262
552271416 13933992

输出

复制
414502981.1740692787

备注:

1\leq n,m\leq 10^91\leq k\leq 10^50\leq x_i\leq n0\leq y_i\leq m

保证对于所有 i\neq j(x_i,y_i)\neq(x_j,y_j),且对于所有 1<i<k,第 i 个点在第 i-1 个点和第 i+1 个点构成的线段上。