#C1019. 抽象守恒

抽象守恒

抽象守恒

题目描述

某校 OI 机房最近进入了一个十分危险的状态,抽象的太不平衡了。

机房里共有 nn 名同学,第 ii 名同学拥有一个抽象指数 aia_i。小RR老师认为,机房的抽象程度必须保持相对稳定:给定一个常数 K>1K>1,如果机房中没有任何一名同学的抽象指数超过机房平均抽象指数的 KK 倍,那么这个机房就处于稳定抽象态。

然而,现在整个机房不一定稳定。为了恢复机房秩序,小RR老师决定驱逐一部分同学,使留下来的同学组成的集合处于稳定抽象态。

显然,仁慈的小RR老师希望被驱逐的同学尽可能少,也就是希望留下的同学人数尽可能多。

不过,如果有多种留下人数最多的方案,小RR老师还没有决定最终采用哪一种。你想知道,哪些同学无论如何都不可能在任何一种最优方案中留在机房。

输入格式

第一行包含一个正整数 tt,表示测试数据组数。

接下来依次描述 tt 组测试数据。

每组测试数据的第一行包含一个正整数 nn,表示机房中的同学人数。同学编号为 1,2,,n1,2,\ldots,n

第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n,其中 aia_i 表示第 ii 名同学的抽象指数。

第三行包含两个整数 p,qp,q,定义常数:

K=pqK=\frac pq。

输出格式

对于每组测试数据,输出两行。

第一行输出一个整数 cc,表示无论如何都不可能留下的同学人数。

第二行输出 cc 个整数,表示这些同学的编号,按升序排列。

c=0c=0,第二行输出空行。

样例 1 输入

3
4
1 2 3 4
3 2
5
1 15 2 5 1
2 1
5
1 2 3 1000 10000
4 3

样例 1 输出

0

1
2
2
4 5

样例 1 解释

第一组测试数据中,虽然所有同学一起留下并不处于稳定抽象态,但可以做到留下 33 名同学,并且每名同学都出现在某个留下 33 人的可行方案中。因此没有同学是绝对不可能留下的。

第二组测试数据中,最多只能留下 33 名同学。可以证明,编号为 22 的同学无法出现在任何一种最优留下方案中,而其他同学都有机会留下。

第三组测试数据中,编号为 4,54,5 的同学抽象指数过高,在任何最优方案中都不可能留下。

样例 2

见选手目录下的 abstract/abstract2.inabstract/abstract2.ans

该样例满足测试点 131\sim 3 的约束条件。

样例 3

见选手目录下的 abstract/abstract3.inabstract/abstract3.ans

该样例满足测试点 131\sim 3 的约束条件。

样例 4

见选手目录下的 abstract/abstract4.inabstract/abstract4.ans

该样例满足测试点 454\sim 5 的约束条件。

样例 5

见选手目录下的 abstract/abstract5.inabstract/abstract5.ans

该样例满足测试点 696\sim 9 的约束条件。

样例 6

见选手目录下的 abstract/abstract6.inabstract/abstract6.ans

该样例满足测试点 101710\sim 17 的约束条件。

样例 7

见选手目录下的 abstract/abstract7.inabstract/abstract7.ans

该样例满足测试点 182518\sim 25 的约束条件。

样例 8

见选手目录下的 abstract/abstract8.inabstract/abstract8.ans

该样例满足测试点 182518\sim 25 的约束条件。

数据范围

对于所有测试数据,均满足:

  • 1t10001\le t\le 1000
  • 1n2×1051\le n\le 2\times10^5
  • 0ai1090\le a_i\le 10^9
  • 1q<p10001\le q<p\le 1000
  • 所有测试数据中 nn 的总和不超过 10610^6

本题共 2525 个测试点,每个测试点 44 分。

测试点编号 分值 约束条件
131\sim 3 1212 n20\sum n\le 20
454\sim 5 88 所有同学抽象指数均相同
696\sim 9 1616 ai{0,1}a_i\in\{0,1\}
101710\sim 17 3232 n5000\sum n\le 5000
182518\sim 25 无额外限制