Сортировка слиянием с подсчетом инверсий
TypeScript
Сложный
sorting
Задача «Сортировка слиянием с подсчетом инверсий»
Дан массив целых чисел. Необходимо отсортировать его по возрастанию с помощью сортировки слиянием, а также подсчитать количество инверсий в исходном массиве. Инверсией называется пара индексов (i, j), такая что i < j и a[i] > a[j]. Входные данные: первая строка содержит число n (1 ≤ n ≤ 10^5), вторая строка содержит n целых чисел, каждое по модулю не превышает 10^9. Выходные данные: первая строка — количество инверсий, вторая строка — отсортированный массив через пробел.
Формат ввода
Сначала целое число n. Затем n целых чисел через пробел.
Формат вывода
Две строки: первая — количество инверсий (целое число), вторая — отсортированный массив через пробел.
Примеры
Пример 1
ВВОД
5
3 1 4 2 5
ВЫВОД
3
1 2 3 4 5
Пример 2
ВВОД
4
4 3 2 1
ВЫВОД
6
1 2 3 4
Пример 3
ВВОД
123
ВЫВОД
0
Пример 4
ВВОД
0
ВЫВОД
0
main.ts