P8073 [COCI 2009/2010 #7] BAKICE
题目描述
有轨电车上总会出现诸多问题,其中包括人群抢夺座位的乱象——他们总会以飞快的速度去抢距离自己最近的座位。
当多名乘客同时瞄准同一个座位准备入座时,问题将会产生。如果只有一名乘客离该座位最近(对于此题,两个点的距离定义为**欧几里得距离**,即 $\sqrt{(x_1-x_2)^2+(y_1-y_2)^2}$),那么他就会入座而其他乘客将会另选最近的座位;如果多名乘客与座位的欧几里得距离都是最近的,那么将会产生「爆炸事件」。「爆炸事件」后,涉及到的乘客和座位都将会「爆炸」(即后续无需继续考虑)。
给定电车中座位、乘客和地板的 $R \times C$ 地图,用 $\texttt .$ 、$\texttt X$ 和 $\texttt L$ 分别表示地板、乘客和座位。求在所有乘客都落座或「爆炸」和座位被抢光最先发生的一个事件之前,发生了多少次「爆炸事件」。
输入格式
第一行,两个整数 $R,C$。
接下来的 $R$ 行,每行 $C$ 个字符 $\texttt .$ / $\texttt X$ / $\texttt L$。
数据保证,至少存在一个 $\texttt X$ 和一个 $\texttt L$。同时,不存在两个 $\texttt L$ 和某一个 $\texttt X$ 的距离相等的情况。
输出格式
输出「爆炸事件」的次数。
说明/提示
**【数据规模与约定】**
- 对于 $100\%$ 的数据,$1 \le R,C \le 100$。
**【提示与说明】**
**题目译自 [COCI 2009-2010](https://hsin.hr/coci/archive/2009_2010/) [CONTEST #7](https://hsin.hr/coci/archive/2009_2010/contest7_tasks.pdf) _Task 3 BAKICE_。**
**本题分值按 COCI 原题设置,满分 $70$。**