Ultra-QuickSort
Description
In this problem, you have to analyze a particular sorting algorithm. The algorithm processes a sequence of n distinct integers by swapping two adjacent sequence elements until the sequence is sorted in ascending order. For the input sequence
9, 1, 0, 5, 4
Ultra-QuickSort produces the output
0, 1, 4, 5, 9
Your task is to determine how many swap operations Ultra-QuickSort needs to perform in order to sort a given input sequence.
Input
The input contains several test cases. Every test case begins with a line that contains a single integer \(n < 5\times10^5\) : the length of the input sequence. Each of the the following \(n\) lines contains a single integer \(0 \le a_i < 10^9\), the i-th input sequence element. Input is terminated by a sequence of length \(n = 0\). This sequence must not be processed.
Output
For every input sequence, your program prints a single line containing an integer number op, the minimum number of swap operations necessary to sort the given input sequence.
Simplified
确定冒泡排序需要执行多少交换操作才能对给定的序列进行升序排序。
给定序列长度为 \(n (n \le 5\times 10^5)\)
Samples
Sample #1
Input
5
9 1 0 5 4
3
1 2 3
0
Output
6
0
Source
算法竞赛进阶指南 POJ
信息
- ID
- 1020
- 难度
- 9
- 分类
- (无)
- 标签
- (无)
- 递交数
- 9
- 已通过
- 4
- 通过率
- 44%
- 上传者