Trao đổi quà
Xem PDFMột tiết mục đáng mong chờ của đêm trung thu ở xóm của Thu, mỗi thiếu nhi sẽ chuẩn bị một phần quà của mình và sẽ trao đổi quà với nhau. Sau đêm trung thu, thiếu nhi thứ \(p_i\) sẽ nhận được quà của thiếu nhi thứ \(i\) và mỗi thiếu nhi nhận được đúng một phần quà. Một cách chia quà \(p_1, p_2,...,p_n\) được gọi là đẹp nếu có đúng \(k\) thiếu nhi nhận lại quà của chính mình sau đêm trung thu (\(p_i = i\)).
Một thao tác được thực hiện bằng cách chọn hai số \(i, j\) thỏa mãn \(1 \leq i, j \leq n, \ i \neq j\) và hoán đổi hai giá trị \((p_i, p_j)\). Tìm số thao tác ít nhất cần thực hiện để cách chia quà được gọi là đẹp.
Input
- Dòng thứ nhất chứa hai số \(n\) và \(k\) (\(0 \leq k \leq n\)).
- Dòng thứ hai gồm \(n\) số \(p_1, p_2,...,p_{n-1},p_n\).
Output
- Gồm một số duy nhất là đáp án của bài toán. Nếu không tồn tại cách thực hiện các thao tác, in ra \(-1\).
Example
Test 1
Input
5 2
3 2 5 1 4
Output
1
Note
Thực hiện một thao tác với \((i,j)=(4,5)\). Dãy trở thành \(3, 2, 5, 4, 1\).
Scoring
Gọi \(x\) là số lượng vị trí \(i\) mà \(p_i=i\) trong dãy \(p\) đã cho.
- Subtask \(1\) (\(25\%\) số điểm): \(x \geq k, n \leq 1000\)
- Subtask \(2\) (\(25\%\) số điểm): \(x \geq k, n \leq 10^5\)
- Subtask \(3\) (\(25\%\) số điểm): \(x < k, n \leq 1000\)
- Subtask \(4\) (\(25\%\) số điểm): \(x < k, n \leq 3\cdot 10^4\)
Kỳ thi:
- TFL Mid-Autumn Contest Bảng B (22 Tháng 9., 2024)
Bình luận