QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 512 MB Total points: 100

#862. 社会正義

Statistics

地方選挙が終わりました。あなたの町には新しい市長が就任し、あなたは市長の最も信頼する顧問となりました!選挙期間中、あなたは「町に社会正義をもたらす」という公約を掲げて市長の人気を高めました。当初はあまり深く考えずにスローガンとして掲げただけでしたが、結局、しつこい記者たちにその正確な定義を説明するよう迫られることになりました。あなたは定数 $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}$ を定義する2つの整数 $p$ と $q$ ($1 \le q < p \le 1000$) が含まれます。

すべてのテストケースにおける市民の総数は $1\,000\,000$ を超えません。

出力

各テストケースについて、町に残ることが絶対にできない人数 $c$ ($0 \le c < n$) を1行に出力してください。続いて、それらの市民の識別番号を昇順で1行に出力してください。

入出力例

入力 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 の社会的に公正な集合が存在することがわかります。したがって、誰かが追放されなければなりませんが、誰であっても追放されない可能性があります。

2番目のテストケースでは、2人が追放されなければなりません。可能性は3つあります:市民 1 と 2 が追放されるか、2 と 4 が追放されるか、あるいは 2 と 5 が追放されるかです。したがって、市民 2 を残したまま正義を構築することは不可能ですが、他のすべての市民には残るチャンスがあります。

3番目のケースでは、市民 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.