QOJ.ac

QOJ

Límite de tiempo: 2 s Límite de memoria: 512 MB Puntuación total: 100

#862. 사회 정의

Estadísticas

지방 선거가 끝났습니다. 당신의 마을에 새로운 시장이 당선되었고, 당신은 시장의 가장 신뢰받는 조언자가 되었습니다! 선거 운동 기간 동안 당신은 마을에 사회 정의를 실현하겠다는 공약으로 시장의 인기를 높였습니다. 처음에는 깊게 생각하지 않고 내뱉은 슬로건이었지만, 결국 끈질긴 기자들의 성화에 못 이겨 그 정확한 의미를 정의해야만 했습니다. 당신은 $K > 1$인 상수를 생각해냈고, 마을 주민 누구도 마을 주민 평균 급여의 $K$배를 초과하여 벌지 못할 때 사회 정의가 실현된다고 선언했습니다.

이제 그 약속을 지킬 때가 왔습니다. 시장은 경제를 붕괴시키지 않으면서 사회 정의를 강제할 합리적인 계획이 없지만, 다행히 훨씬 간단한 아이디어를 떠올렸습니다. 정의에 부합하는 급여를 받는 시민들로 구성된 그룹을 선택하고... 나머지는 모두 추방하는 것입니다. 정말 완벽한 계획입니다! 마을에 남은 사람들은 순수하고 사회적으로 정의로운 사회에서 살게 될 것입니다. 추방당하는 사람들은... 뭐, 어차피 다음 선거에서 투표할 기회도 없을 테니까요. 간단하고 효과적입니다. 무엇이 잘못될 수 있겠습니까?

물론 잘못될 일은 없지만, 당신에게는 상황이 더 좋게 흘러갈 수도 있습니다! 시장은 목표를 달성하기 위해 가능한 한 적은 수의 사람을 추방하기로 결심했지만, 만약 그렇게 할 수 있는 방법이 여러 가지라면 당신은 분명 그 선택에 영향력을 행사할 수 있을 것입니다. 분명히, 결정이 내려지기 전에 시민들과 미리 대화하여 그들 중 일부가 당신의 보호를 대가로 흥미로운 제안을 할 수 있는지 알아보는 것은 나쁠 것이 없습니다.

하지만 여기서 문제가 있습니다. 만약 특정 사람이 마을에 남을 가능성이 전혀 없다면, 그 사람과 대화하는 것은 불필요하고 무의미한 위험이 될 것입니다. 왜냐하면 어떤 경우에도 그들에게 보호를 제공할 수 없기 때문입니다. 더 실용적인 선택은 그러한 모든 시민의 목록을 작성하고, 그 외의 모든 사람과 대화하는 것입니다.

입력

입력의 첫 번째 줄에는 테스트 케이스의 수 $z$ ($1 \le z \le 1000$)가 주어집니다. 각 테스트 케이스에 대한 설명이 이어집니다.

각 테스트 케이스의 첫 번째 줄에는 시민의 수 $n$ ($1 \le n \le 200\,000$)이 주어집니다. 시민들은 $1$부터 $n$까지 번호가 매겨져 있습니다.

다음 줄에는 시민들의 급여를 나타내는 $n$개의 정수 $a_i$ ($0 \le a_i \le 10^9$)가 주어집니다.

마지막 줄에는 상수 $K := \frac{p}{q}$를 정의하는 두 정수 $p$와 $q$ ($1 \le q < p \le 1000$)가 주어집니다.

모든 테스트 케이스의 시민 수의 총합은 $1\,000\,000$을 넘지 않습니다.

출력

각 테스트 케이스마다 마을에 절대 남을 수 없는 사람의 수 $c$ ($0 \le c < n$)를 한 줄에 출력합니다. 그 다음 줄에 해당 시민들의 번호를 오름차순으로 출력합니다.

예제

입력 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

참고

첫 번째 테스트 케이스에서, 전체 집합은 사회적으로 정의롭지 않습니다. 각 시민에 대해 그 시민을 포함하는 크기 3의 사회적으로 정의로운 집합이 존재함을 알 수 있습니다. 따라서 누군가는 추방되어야 하지만, 누구든 추방되지 않을 가능성이 있습니다.

두 번째 테스트 케이스에서는 두 명을 반드시 추방해야 합니다. 세 가지 가능성이 있습니다: 시민 1과 2가 추방되거나, 2와 4가 추방되거나, 2와 5가 추방될 수 있습니다. 따라서 시민 2를 포함하여 정의를 구축하는 것은 불가능하며, 다른 모든 시민은 남을 가능성이 있습니다.

세 번째 케이스에서는 시민 4와 5가 명백히 추방되어야 합니다. 그들의 터무니없는 급여를 보십시오!

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#187EditorialOpen题解jiangly2025-12-12 23:59:01View

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.