NKINV - Dãy nghịch thế

Tags: binary-index-tree

Problem

https://vn.spoj.com/problems/NKINV

https://oj.vnoi.info/problem/NKINV

Cho một dãy số a1.. aN. Một nghịch thế là một cặp số u, v sao cho u < v và au > av. Nhiệm vụ của bạn là đếm số nghịch thế.

Dữ liệu

  • Dòng đầu ghi số nguyên dương N.
  • N dòng sau mỗi dòng ghi một số ai ( 1 ≤ i ≤ N ).

Kết qủa

Ghi trên một dòng số M duy nhất là số nghịch thế.

Giới hạn

  • 1 ≤ N ≤ 60000
  • 1 ≤ ai ≤ 60000

Ví dụ

**Dữ liệu:**
3
3
1
2

**Kết qủa**
2

Tutorial

Sử dụng Binary Index Tree (BIT): Do giới hạn giá trị nhỏ nên ta có thể dùng BIT[1…60000], với mỗi i, ta đếm số lượng những số > a[i] trước i, hay lấy số lượng những số >= a[i]+1.


Submission

NKINV.cpp