SP1962 CIRCLES - Circles

题目描述

小 Gary 正在玩一个有趣的视频游戏,游戏中会有圆圈不断地出现在屏幕上,然后消失。每当屏幕闪烁时,Gary 可以在屏幕上画一条直线,得分等于这条直线与圆圈相交的数量。Gary 生来就是个赢家,他想要尽可能地获得更高的分数。请帮助他编写程序,以找出每次屏幕闪烁时能够获得的最高分。

输入格式

第一行输入一个整数 $M$($1 \le M \le 1000$),表示游戏过程中发生的事件数。接下来 $M$ 行,每行描述一个事件,格式如下: - `1 x y r`:表示在坐标 $(x, y)$ 处出现了一个半径为 $r$ 的圆。 - `2 i`:表示第 $i$ 个出现的圆消失。 - `3`:表示屏幕闪烁。 其中,$x$、$y$ 和 $r$ 是最多有两位小数的实数,满足 $-10^6 < x, y, r < 10^6$ 且 $r > 0$。 **注意事项**: - 直线与圆相交是指这条直线与圆至少有两个交点。 - 任何时候,屏幕上的两个圆不会有共同的交点。 - 任何时候,不存在一条直线能同时“接触”超过两个圆(“接触”是指直线与圆恰好有一个交点)。 - 任何时候,屏幕上最多显示 100 个圆。 - 在删除时,圆一定是在屏幕上的。 - 每个圆只会被删除一次。

输出格式

每当屏幕闪烁时,输出一个整数,表示 Gary 能够使直线与最多多少个圆相交。 **本翻译由 AI 自动生成**