P-5-4. 反序數量 (APCS201806)


Submit solution

分數: 100 (partial)
時間限制: 2.0s
記憶體限制: 1G

作者:
題目類型
允許的語言
Assembly, Brainfuck, C, C++, Python

考慮一個數列 \(A[1:n]\)。如果 \(A\) 中兩個數字 \(A[i]\) 和 \(A[j]\) 滿足 \(i<j\) AND \(A[j]<A[i]\),也就是在前面的比較大,則我們說 \((A[i],A[j])\) 是一個反序對 \((inversion)\)。 定義 W(A)為數列 A 中反序對數量。例如,在數列 \(A=(3,1,9,8,9,2)\) 中,一共有\((3,1)、(3,2)、(9,8)、(9,2)、(8,2)、(9,2)\) 一共 6 個反序對,所以 \(W(A)=6\)。 請注意到序列中有兩個 9 都在 2 之前,因此有兩個\((9,2)\)反序對,也就是說,不同位置的反序對都要計算,不管兩對的內容是否一樣。 請撰寫一個程式,計算一個數列 \(A\) 的反序數量 \(W(A)\)。

輸入格式

第一行是一個正整數 \( n \) ,代表數列長度, 第二行有 \( n \) 個非負整數,是依序數列內容,數字間以空白隔開。 \( n \) 不超過 \( 1e5 \) 數列內容不超過 \( 1e6 \) 。

輸出格式

輸出反序對數量。

範例輸入

6
3 1 9 8 9 2

範例輸出

6

評論

目前沒有評論。