Задача І знову бульбашка (bubblesort).

Коливан вирішив терміново зібрати зі всіх своїх боржників борги. Щоб не забути розмір боргу кожного з них, він записав у велику таблицю кількість золотих злитків, які йому винен кожен з боржників. Тепер Коливану необхідно відсортуватицю таблицю, щоб стягувати борги строго у порядку спадання, а жодного алгоритму сортування він не знає. Коливану вдалося викрасти у Київського князя секретний документ, що містить опис алгоритму сортування наступного виду:

для k от 1 до N-1

для j от 1 до N-k

якщо A[j] < A[j+1]

переставити A[j] та A[j+1]

Почавши виконувати перестановки за описаним алгоритмом, Коливан зрозумів, що робота виконується дуже повільно, і хоче оцінити необхідний час для її виконання. Допоможіть Коливану оцінити час роботи сортування, підрахував для кожного елементу таблиці кількість операцій перестановки, проведених над ним.

Формат введення/виведення.

Програма bubblesort зчитує з клавіатури (стандартного пристрою введення) ціле число N (1<=N<=100000) – кількість чисел, що будуть сортуватися; а потім N цілих чисел – елементи таблиці, що сортується (1<=A[i]<=109, всі елементи різні), що розділені пробілами.

Програма bubblesort виводить на екран (стандартний пристрій виведення) N чисел, кожне з яких дорівнює кількості операцій перестановки, що були проведені над числом, яке стояло на цьому місці у вихідній таблиці.

Приклад вхідних та вихідних даних.

Введення

Виведення

4

1 2 5 4

3 3 2 2

 

© LIKT 1998-2018