P16164 [ICPC 2015 NAIPC] Area of Effect

题目描述

Liam(angryneeson52)正在玩他最喜欢的塔防游戏!这个游戏需要他在保卫自己村庄的同时,摧毁对手的随从。 Liam 最喜欢的攻击方式是范围攻击。范围攻击是一个完美的圆形。Liam 只需选择一个圆心和半径,所有位于该圆内或圆上的随从都会被摧毁!随从足够小,可以被视为点。 游戏并不像摧毁所有随从那么简单。Liam 还必须避免攻击击中自己的村庄。攻击可以触及村庄的墙壁,但不能进入村庄内部。村庄也是完美的圆形。 Liam 的攻击还有最大半径限制。攻击半径可以缩小,但不能超过最大值。 请确定 Liam 在一次攻击中,在不损坏任何自己村庄的前提下,最多可以摧毁多少随从。

输入格式

每个输入包含单个测试用例。请注意,你的程序可能会在不同输入上多次运行。每个输入的第一行包含三个空格分隔的整数 $n$、$m$、$r$,其中: - $n$($1 \leq n \leq 10$)是 Liam 的村庄数量 - $m$($1 \leq m \leq 2000$)是对手的随从数量 - $r$($1 \leq r \leq 20000$)是 Liam 范围攻击的最大半径 接下来的 $n$ 行,每行包含三个空格分隔的整数 $vx$、$vy$、$vr$,表示 Liam 一个村庄的位置($-20000 \leq vx, vy \leq 20000$)和半径($1 \leq vr \leq 20000$)。没有两个村庄相交或重叠。 接下来的 $m$ 行,每行包含两个空格分隔的整数 $mx$、$my$,表示一个敌方随从的位置($-20000 \leq mx, my \leq 20000$)。没有两个随从占据同一个点,并且没有敌方随从位于 Liam 的任何村庄内部。

输出格式

输出一个整数,表示 Liam 一次攻击最多可以摧毁的敌方随从数量。

说明/提示

翻译由 DeepSeek V3.2 完成