P12068 [THOI 2013] 宇宙飞艇

题目背景

搬运自 [2013 年清华大学信息学邀请赛](https://gitlink.org.cn/thusaa/thoi2013)。 upd 2025.4.7 10:20:本题 spj 已修复。 udp 2025.4.16 19:19:添加了一组 Hack 数据,位于 Subtask #1。感谢 @[AL8624](/user/913226) 的贡献。

题目描述

小胜是宇宙飞艇神舟 $100$ 号的指挥官,正在指挥神舟 $100$ 号进行航行任务。 神舟 $100$ 号上一共有 $n$ 个能够在水平方向产生推力的引擎(至于垂直的第三维方向,小胜对此并不关心),其中第 $i$ 个引擎能够使飞艇获得的水平速度为 $\overrightarrow{p_i}=(x_i,y_i)$。由于采用了特殊技术,飞艇在运行过程中不会发生旋转。 为了能够尽快的执行任务,小胜希望你帮助他解决下列问题: 1. 飞艇利用这些引擎在 $\overrightarrow{q}=(x_q,y_q)$ 方向上获得的最大分速度是多少? 2. 飞艇利用这些引擎所能获得的最大速度是多少? 3. 飞艇恰好使用 $k$ 个引擎,所能获得的最大速度是多少? 为了方便表达,对于问题 $1$,请输出最大分速度与 $|\overrightarrow{q}|$($\overrightarrow{q}$ 的模长,即 $\sqrt{x_q^2+y_q^2}$)的乘积;对于问题 $2$ 和问题 $3$,请输出最大速度的平方。

输入格式

第一行包含一个正整数 $n$,表示引擎的个数。 第二行包含两个整数 $x_q$ 和 $y_q$,表示方向 $\overrightarrow{q}=(x_q,y_q)$。 接下来 $n$ 行,每行包含两个整数 $x_i$ 和 $y_i$,表示第 $i$ 个引擎所能提供的速度为 $\overrightarrow{p_i}=(x_i,y_i)$。

输出格式

第一行为一个整数,表示神舟 $100$ 号在 $\overrightarrow{q}$ 方向上最大分速度与 $|\overrightarrow{q}|$ 的乘积的值。 第二行为一个整数,表示通过这 $n$ 个引擎所能得到的最大速度值的平方。 第三行包含 $n$ 个用空格隔开的整数,其中第 $k$ 个整数表示恰好开启 $k$ 个引擎所能得到的最大速度的平方。

说明/提示

### 【对样例的说明】 对于样例 1,要获得在 $\overrightarrow{q}=(1,1)$ 方向的最大分速度,最佳方案是打开前两个引擎,而打开这两个引擎也可以使得飞艇获得最大速度。 对于样例 2,要使得飞艇获得在 $\overrightarrow{q}=(1,1)$ 方向的最大分速度,需要打开 $2,3,4$ 号引擎,而要使得飞艇获得最大速度,则需要打开 $5,6,7,8$ 号引擎。 ### 【数据规模与约定】 $25\%$ 的数据满足 $n\le300$。 $50\%$ 的数据满足对于任意 $1\le i