CF744D Hongcow Draws a Circle

题目描述

Hongcow 非常喜欢红色,不喜欢蓝色。 Hongcow 现在站在一个无限大的平原上,平原上有 $n$ 个红色点和 $m$ 个蓝色点。 Hongcow 想要在这个平原上画一个圆,使得这个圆内至少包含一个红点,并且圆内不能有蓝点。恰好在圆边界上的点可以被视为在圆内或圆外。 请计算满足条件的最大圆的半径。如果这个圆的半径可以任意大,则输出 $-1$。否则,你的答案只要绝对误差或相对误差不超过 $10^{-4}$ 即可。

输入格式

输入的第一行包含两个整数 $n,m$($1 \leq n, m \leq 1,000$)。 接下来的 $n$ 行,每行包含两个整数 $x_{i},y_{i}$($1 \leq x_{i},y_{i} \leq 10^4$),表示第 $i$ 个红点的坐标。 之后的 $m$ 行,每行包含两个整数 $x_{i},y_{i}$($1 \leq x_{i},y_{i} \leq 10^4$),表示第 $i$ 个蓝点的坐标。 没有两个点的坐标是相同的。

输出格式

如果这个圆的半径可以任意大,请输出 $-1$。否则,请输出一个浮点数,表示满足条件的最大圆的半径。只要你的答案的绝对误差或相对误差不超过 $10^{-4}$ 即可。 也就是说,假如你的答案是 $a$,而标准答案是 $b$,则你的答案会被判为正确当且仅当 $|a - b| \leq 10^{-4} \max(1,|b|)$。

说明/提示

以下是第一个样例的图示: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF744D/50e8da306fe47947cfeb784650b3d6b2ea876ead.png) 以下是第二个样例的图示: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF744D/a1b03125c876722297007ba9fc107d7fb9df9570.png) 由 ChatGPT 5 翻译