[Buổi 12][Chia để trị][WS] Bài 1: Đếm cặp đảo thứ tự


LÀM BÀI

Points: 100
Time limit: 3.0s
Memory limit: 256M

Author:
Problem types

Đếm cặp đảo thứ tự

Bối cảnh và bài toán

Một chuỗi bản ghi đáng lẽ tăng theo thứ tự ưu tiên. Một cặp (i,j) với i<j nhưng a[i]>a[j] biểu thị một lần đảo thứ tự. Với dữ liệu lớn, kiểm mọi cặp là quá chậm.

Yêu cầu

Đếm tổng số cặp đảo thứ tự.

Input

  • Dòng 1: n.
  • Dòng 2: n số nguyên a[i].

Output

In số inversion.

Ràng buộc

  • 1 <= n <= 2 * 10^5
  • |a[i]| <= 10^9

Chấm điểm

Subtask Điểm Điều kiện Official tests
S1 20% n ≤ 2 * 10^3 01–04
S2 30% n ≤ 5 * 10^4 05–10
S3 50% Không có ràng buộc bổ sung 11–20

Ví dụ 1

Input

3
3 1 2

Output

2

Giải thích. Các inversion là (3,1) và (3,2).

Ví dụ 2

Input

5
5 4 3 2 1

Output

10

Giải thích. Mọi cặp i<j đều là inversion, tổng C(5,2)=10.

Thông tin bài tập

Thuộc tính Giá trị
Mã bài DSA-M04-B12-WS01
Buổi B12
Loại bài WORKSHOP
Mức độ khó Trung bình (Medium)
Thời gian làm bài khuyến nghị 50 phút
Time limit 3 giây
Memory limit 256 MB
Tổng điểm 100
Chuẩn ngôn ngữ tham chiếu C++11 trở lên
Yêu cầu bổ sung Decision Note

Nguồn: Phỏng theo SPOJ — INVCNT (Code Wars 2010).

Tham khảo: https://www.spoj.com/problems/INVCNT/


Comments

There are no comments at the moment.

Zalo