#P15695. [2026作业]留城名单

    ID: 14907 传统题 1000ms 256MiB 尝试: 3 已通过: 1 难度: 5 上传者: 标签>算法基础排序前缀和二分差分CF1800

[2026作业]留城名单

题目描述

一座城市准备保留一部分居民,并要求留下来的居民满足一条收入公平规则。设留下来的居民平均收入为 avg,收入最高者的收入不能超过 K * avg,其中 K = p / qK > 1

管理者希望驱逐尽可能少的人,也就是让留下的人数尽可能多。若存在多种人数最多的选择方案,某些居民可能出现在至少一种方案中,而另一些居民无论如何都不可能留下。

请找出所有在任何最优方案中都无法留下的居民编号。

输入格式

第一行包含一个整数 z,表示测试用例数量。

每个测试用例包含三行:

第一行包含一个整数 n,表示居民数量。居民编号为 1n

第二行包含 n 个整数 a_i,表示第 i 个居民的收入。

第三行包含两个整数 p, q,定义常数 K = p / q

输出格式

对每个测试用例,先输出一行一个整数 c,表示一定无法留在城中的居民数量。

下一行输出 c 个整数,表示这些居民的编号,按升序排列。若 c = 0,仍输出一个空行。

数据范围

  • 1 <= z <= 1000
  • 1 <= n <= 200000
  • 0 <= a_i <= 10^9
  • 1 <= q < p <= 1000
  • 所有测试用例的 n 之和不超过 1000000

样例

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

1
2
2
4 5