Ordenação por mistura com determinação de inversões

PHP Hard sorting

Tarefa «Ordenação por mistura com determinação de inversões»

Dado um array de inteiros. É necessário implementar o algoritmo de ordenação por mistura (merge sort), que também conta o número de inversões no array. Uma inversão é um par de índices (i, j), tal que i < j e arr[i] > arr[j]. Imprimir o array ordenado e o número de inversões.

Formato de Entrada

Na primeira linha, um número inteiro N (1 ≤ N ≤ 10^5) — a quantidade de elementos. Na segunda linha, N números inteiros separados por espaço.

Formato de Saída

Na primeira linha, N números separados por espaço — o array ordenado em ordem crescente. Na segunda linha, um número inteiro — o número de inversões.

Exemplos

Exemplo 1

ENTRADA
Война и мир Лев Толстой 1869
SAÍDA
Название: Война и мир, Автор: Лев Толстой, Год: 1869

Exemplo 2

ENTRADA
3 1 2 3
SAÍDA
1 2 3 0

Exemplo 3

ENTRADA
1984 Джордж Оруэлл 1949
SAÍDA
Название: 1984, Автор: Джордж Оруэлл, Год: 1949
main.php