QOJ.ac

QOJ

حد الوقت: 2 s حد الذاكرة: 512 MB مجموع النقاط: 100

#862. Justice sociale

الإحصائيات

Les élections locales sont terminées. Votre ville a un nouveau maire et vous êtes son conseiller le plus proche ! Pendant la campagne, vous avez bâti sa popularité sur la promesse d'apporter la justice sociale à la ville. Ayant initialement conçu cela comme un slogan sur lequel il ne fallait pas trop s'attarder, vous avez finalement été contraint par tous ces journalistes curieux d'en définir le sens précis. Vous avez trouvé une constante $K > 1$ et déclaré que la justice sociale serait atteinte lorsque personne ne gagnerait plus de $K$ fois le salaire moyen des résidents de la ville.

Le moment est venu de tenir cette promesse. Le maire n'a pas vraiment de plan raisonnable pour imposer la justice sociale sans faire s'effondrer l'économie, mais heureusement, il a eu une idée beaucoup plus simple. Il suffira de choisir un groupe de citoyens dont les salaires correspondent à la définition... et de bannir tous les autres. Un plan infaillible, en effet ! Ceux qui resteront dans la ville vivront dans une société pure et socialement juste. Ceux qui seront bannis... eh bien, ils n'auront de toute façon pas la chance de voter lors de la prochaine élection. Simple et efficace – qu'est-ce qui pourrait mal tourner ?

Rien ne peut mal tourner, bien sûr, mais pour vous, les choses peuvent même aller mieux ! Le maire est déterminé à bannir le moins de personnes possible pour atteindre l'objectif, mais s'il existe plus d'une façon possible de le faire, vous serez sûrement en mesure d'influencer le choix. Clairement, cela ne fera pas de mal de parler aux citoyens au préalable et de découvrir si certains d'entre eux ont quelque chose d'intéressant à offrir en échange de votre protection lorsque les décisions seront prises.

Voici le piège, cependant : s'il n'y a aucune possibilité qu'une personne donnée puisse être autorisée à rester, en discuter avec elle serait un risque inutile et vain, car vous ne pourriez pas lui offrir votre protection quoi qu'il arrive. Un choix plus pragmatique sera de dresser une liste de tous ces citoyens – et de parler avec tous les autres.

Entrée

La première ligne de l'entrée contient le nombre de cas de test $z$ ($1 \le z \le 1000$). Les descriptions des cas de test suivent.

La première ligne de chaque cas de test contient un seul entier $n$ ($1 \le n \le 200\,000$) – le nombre de citoyens. Les citoyens sont numérotés de $1$ à $n$.

La ligne suivante contient $n$ entiers $a_i$ ($0 \le a_i \le 10^9$) – les salaires des citoyens.

La dernière ligne contient deux entiers $p$ et $q$ ($1 \le q < p \le 1000$) qui définissent la constante $K := \frac{p}{q}$.

Le nombre total de citoyens dans tous les cas de test ne dépasse pas $1\,000\,000$.

Sortie

Pour chaque cas de test, affichez une ligne contenant un entier $c$ ($0 \le c < n$) : le nombre de personnes qui ne peuvent définitivement pas rester dans la ville. Ensuite, affichez une seule ligne contenant $c$ entiers : les identifiants de ces citoyens dans l'ordre croissant.

Exemples

Exemple 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

Exemple 2

0
1
2
2
4 5

Remarque

Dans le premier cas de test, l'ensemble complet n'est pas socialement juste. On peut voir que pour chaque citoyen, il existe un ensemble socialement juste de taille $3$ contenant ce citoyen. Par conséquent, quelqu'un doit être banni, mais tout le monde a une chance de ne pas être cette personne.

Dans le deuxième cas de test, deux personnes doivent être bannies. Il y a trois possibilités : les citoyens numéro $1$ et $2$ pourraient être bannis, ou $2$ et $4$, ou $2$ et $5$. Par conséquent, il n'est pas possible de construire une justice avec la personne $2$ à bord, alors que tout autre citoyen a une chance de rester.

Dans le troisième cas, les citoyens $4$ et $5$ doivent clairement être bannis – il suffit de regarder leurs salaires exorbitants !

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.