Hoàng có n viên bi được xếp thành một hàng. Viên bi thứ i có màu aᵢ.
Hoàng muốn sắp xếp lại các viên bi sao cho tất cả các viên bi cùng màu nằm liền nhau (và mỗi màu chỉ tạo thành một đoạn liên tục).
Nói cách khác, sau khi sắp xếp, đối với mỗi màu j, nếu viên bi bên trái nhất của màu j ở vị trí l, và viên bi bên phải nhất của màu này ở vị trí r, thì mọi viên bi từ l đến r đều phải có màu j.
Để làm được điều đó, Hoàng có thể thực hiện thao tác sau bất kỳ số lần nào:
Chọn hai viên bi kề nhau và hoán đổi chúng.
Nhiệm vụ của bạn là tính số lần hoán đổi ít nhất mà Hoàng phải thực hiện để đạt được mục tiêu.
Lưu ý: Thứ tự các đoạn màu sau khi sắp xếp không quan trọng — chỉ cần đảm bảo rằng mỗi màu đều tạo thành một đoạn duy nhất.
Input
Dòng đầu tiên chứa số nguyên n (2 ≤ n ≤ 4 × 10⁵) — số viên bi.
Dòng thứ hai chứa dãy số nguyên a₁, a₂, …, aₙ (1 ≤ aᵢ ≤ 20), trong đó aᵢ là màu của viên bi thứ i.
Output
In ra số lần hoán đổi tối thiểu mà Hoàng cần để tất cả các viên bi cùng màu nằm liền nhau.
Sample input
7
3 4 2 3 4 2 2
Sample output
3
Sample input
5
20 1 14 10 2
Sample output
0
Sample input
13
5 5 4 4 3 5 7 6 5 4 4 6 5
Sample output
21
Note
Trong ví dụ đầu tiên, ta cần đúng 3 thao tác:
Hoán đổi viên bi thứ 3 và thứ 4 → dãy trở thành: 3 4 3 2 4 2 2
Hoán đổi viên bi thứ 2 và thứ 3 → dãy trở thành: 3 3 4 2 4 2 2
Hoán đổi viên bi thứ 4 và thứ 5 → dãy trở thành: 3 3 4 4 2 2 2
Kết quả: mỗi màu đã tạo thành một đoạn liên tục, đúng yêu cầu bài toán.
Trong ví dụ thứ hai, dãy ban đầu đã hợp lệ nên không cần thực hiện thao tác nào.
Bình luận