/ spv / 题库 /

Ultra-QuickSort

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%
上传者