輸入一個長度為 2n 的陣列,其中 1 ~ n 的每個數字都剛好各 2 次。 i 的低窪值的定義是兩個數值為 i 的位置中間,有幾個小於 i 的的數字。 以 [3, 1, 2, 1, 3, 2] 為例,1的低窪值為 0, 2 的低窪值值為 1, 3 的低窪值為 3。
請對於每個 1 ~ n 的數字都求其低窪值(兩個相同的數字之間有幾個數字比它小),輸出低窪值的總和,答案可能會超過 C++ int 的上限。
輸入說明
第一行有一個正整數 n 第二行有 2n 個正整數,以空格分隔,保證 1 n 每個數字都恰好出現兩次。
配分
20%: 1≤n≤1000
40%: 1≤n≤40000
40%: 1≤n≤100000
輸出說明
輸出 1 ~ n 每個數字的低窪值總和。
輸入範例
3
3 1 2 1 3 2
輸出範例
4
解題策略
BIT(binary index tree)