CF460E Roland and Rose
题目描述
Roland 喜欢种花。他最近在笛卡尔坐标系中的点 $(0,0)$ 处种了一朵美丽的玫瑰。由于玫瑰太美了,Roland 担心邪恶势力会来偷走它。
为了保护这朵玫瑰,Roland 想建造 $n$ 个瞭望塔。我们假设,一个瞭望塔是位于距离玫瑰不超过 $r$ 的平面上的一个点。此外,Roland 要求瞭望塔必须建在整数坐标上,并且所有瞭望塔两两之间距离的平方之和要尽可能大。注意,Roland 可以在同一个点建造多个瞭望塔,也可以在点 $(0,0)$ 处建造。
请你帮助 Roland 选择整数坐标来建造这些塔,使得所有塔两两之间距离的平方之和最大。这里所说的距离,是指两点之间的欧几里得距离。
输入格式
第一行包含两个整数 $n$ 和 $r$,表示要建造的瞭望塔数量和允许的最大半径,满足 $2 \leq n \leq 8$,$1 \leq r \leq 30$。
输出格式
第一行输出一个整数,表示所有瞭望塔两两之间距离的平方之和的最大值。
接下来的 $n$ 行,每行输出两个整数 $x_i, y_i$,表示第 $i$ 个瞭望塔的坐标。每个瞭望塔必须位于以 $(0,0)$ 为圆心、半径为 $r$ 的圆内部或边界上。注意,可以有多个瞭望塔选在同一个点,也可以有几个选在 $(0,0)$ 处。
如果存在多种方案能取得最大值,输出任意一种均可。
说明/提示
由 ChatGPT 5 翻译