Tri par fusion avec détermination des inversions

PHP Hard sorting

Tâche «Tri par fusion avec détermination des inversions»

Un tableau d'entiers est donné. Il faut implémenter un algorithme de tri par fusion (merge sort) qui compte également le nombre d'inversions dans le tableau. Une inversion est une paire d'indices (i, j) telle que i < j et arr[i] > arr[j]. Afficher le tableau trié et le nombre d'inversions.

Format d\ entrée

La première ligne contient un entier N (1 ≤ N ≤ 10^5) — le nombre d'éléments. La deuxième ligne contient N entiers séparés par des espaces.

Format de sortie

La première ligne contient N nombres séparés par des espaces — le tableau trié par ordre croissant. La deuxième ligne contient un entier — le nombre d'inversions.

Exemples

Exemple 1

ENTRÉE
Война и мир Лев Толстой 1869
SORTIE
Название: Война и мир, Автор: Лев Толстой, Год: 1869

Exemple 2

ENTRÉE
3 1 2 3
SORTIE
1 2 3 0

Exemple 3

ENTRÉE
1984 Джордж Оруэлл 1949
SORTIE
Название: 1984, Автор: Джордж Оруэлл, Год: 1949
main.php