Điểm:
200
Thời gian:
1.0s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
Cho dãy số \(a_1, a_2, ..., a_n\), trong đó \(a_i = 0\) hoặc \(1\). Mỗi thao tác, bạn được chọn hai số kề nhau và hoán đổi chúng. Hãy tìm số thao tác ít nhất để sắp xếp dãy \(a\) tăng dần.
Ví dụ, \(a = [1, 0, 0]\). Chúng ta cần 2 thao tác.
- Thao tác 1: Hoán đổi \(a_1\) và \(a_2\). \(a = [0, 1, 0]\).
- Thao tác 2: Hoán đổi \(a_2\) và \(a_3\). \(a = [0, 0, 1]\). Lúc này dãy \(a\) đã được sắp xếp tăng dần.
Input
- Dòng đầu chứa một số tự nhiên \(n\), độ dài của dãy. \((1 \leq n \leq 5 * 10^5)\)
- Dòng thứ hai chứa \(n\) số tự nhiên \(a_1, a_2, ..., a_n \ (0 \leq a_i \leq 1)\)
Output
- In ra một số tự nhiên là số thao tác ít nhất cần sử dụng
Scoring
- Subtask \(1\) (\(30\%\) số điểm): \(n \leq 10\)
- Subtask \(2\) (\(30\%\) số điểm): \(n \leq 1000\)
- Subtask \(3\) (\(40\%\) số điểm): \(n \leq 5 * 10^5\)
Example
Test 1
Input
3
1 0 0
Output
2
Test 2
Input
4
0 0 1 1
Output
0
Bình luận (1)