QOJ.ac

QOJ

Time Limit: 3.0 s Memory Limit: 256 MB Total points: 100 Hackable ✓

#14093. Tri par remplacements

Statistics

On considère un tableau $A$ et un ensemble $B$ d'entiers tels que tous les nombres de $A$ et de $B$ sont distincts. Votre tâche consiste à transformer $A$ en un tableau trié. Pour cela, vous pouvez prendre n'importe quel nombre de $B$ et remplacer n'importe quel élément de $A$ par ce nombre. Vous pouvez effectuer cette opération autant de fois que vous le souhaitez, mais chaque élément de $B$ ne peut être utilisé qu'une seule fois au maximum.

Déterminez le nombre minimal d'opérations nécessaires pour transformer $A$ en un tableau trié, ou déterminez que c'est impossible.

Entrée

La première ligne de l'entrée contient deux entiers $N$ et $M$ ($1 \le N,M \le 5\cdot10^5$), les tailles respectives de $A$ et de $B$.

La deuxième ligne contient $N$ entiers $A_1,A_2,\ldots,A_N$.

La troisième ligne contient $M$ entiers $B_1,B_2,\ldots,B_M$.

Les $N+M$ éléments sont tous distincts, positifs et inférieurs ou égaux à $10^9$.

Sortie

S'il est impossible de transformer $A$ en un tableau trié, affichez $-1$. Sinon, affichez le nombre minimal d'opérations nécessaires.

Exemples

Entrée 1

4 1
2 6 13 10
5

Sortie 1

-1

Entrée 2

4 2
2 6 13 10
5 4

Sortie 2

2

Entrée 3

4 3
2 6 13 10
5 4 19

Sortie 3

1

Remarque

Dans les trois exemples, le problème est que $13>10$ : il faut donc modifier au moins l'un des deux.

Dans le premier, on peut diminuer $13$ en le remplaçant par $5$, mais cela perturbe l'ordre de l'autre côté : il n'y a donc pas de solution.

Dans le deuxième, on dispose aussi de $4$, qui permet de réparer le côté perturbé. Il est impossible de le faire en moins de $2$ opérations.

Dans le troisième exemple, on peut enfin augmenter le dernier élément et ainsi trier $A$ en $1$ opération.

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.