Cho dãy \(q\) số nguyên dương \(a = a_{1}, a_{2}, \ldots, a_{N}\). Với mỗi chỉ số \(i : 1 \leq i \leq n - 1\), người ta định nghĩa phép rút gọn \(R(i)\) là phép thay thế \(a_{i} = a_{i} − a_{i + 1}\) rồi xóa phần tử \(a_{i + 1}\).
Sau mỗi lần rút gọn, số phần tử của dãy \(A\) giảm đi \(1\) và các phần tử của dãy \(A\) được đánh số lại từ \(1\) bắt đầu từ phần tử mang chỉ số nhỏ nhất.
Sau \(n − 1\) lần rút gọn dãy \(a\), ta sẽ thu được duy nhất một số nguyên
Ví dụ: \((12, 10, 4, 3, 5) \rightarrow R(2) \rightarrow (12, 6, 3, 5) \rightarrow R(3) \rightarrow (12, 6, −2) \rightarrow R(2) \rightarrow (12,8) \rightarrow R(1) \rightarrow (4)\)
Yêu cầu: Cho số nguyên \(V\), hãy tìm thứ tự thực hiện \(n − 1\) phép rút gọn đối với dãy đã cho để số cuối cùng thu được là \(V\).
Input
- Dòng đầu tiên chứa hai số nguyên dương \(N, V\) \((1 \leq n \leq 2 \times 10^{2}, 1 \leq V \leq 4 \times 10^{4})\).
- Dòng thứ hai chứa \(n\) số nguyên dương \(a_{1}, a_{2}, \ldots, a_{n}\) \((1 \leq a_{i} \leq 2 \times 10^{2})\).
Output
- Ghi ra \(N−1\) số tương ứng với vị trí thực hiện \(N−1\) phép rút gọn theo đúng thứ tự thi hành.
Scoring
- Subtask \(1\) (\(50\%\) số điểm): \(n \leq 10\).
- Subtask \(2\) (\(50\%\) số điểm): Không có ràng buộc gì thêm.
Example
Test 1
Input
5 4
12 10 4 3 5
Output
2 3 2 1
Bình luận
Ad viết tutorial bài này được không ạ