Cho một dãy số gồm số nguyên. Bạn cần chia dãy số này thành ít đoạn nhất có thể, sao cho mỗi đoạn thỏa mãn hai điều kiện sau:
- Độ dài của mỗi đoạn phải lớn hơn hoặc bằng .
- Chênh lệch giữa giá trị lớn nhất và giá trị nhỏ nhất trong đoạn đó không vượt quá (tức là ).
Hãy tìm số lượng đoạn ít nhất. Nếu không thể chia dãy số thỏa mãn yêu cầu, in ra -1.
Dữ liệu:
- Dòng đầu tiên chứa ba số nguyên (, , ).
- Dòng thứ hai chứa số nguyên ().
Kết quả:
- In ra số lượng đoạn ít nhất tìm được, hoặc -1 nếu không có cách chia.
Ví dụ:
Dữ liệu:
Kết quả:
Dữ liệu:
7 2 2
1 100 1 100 1 100 1
Kết quả:
Giới hạn:
- Subtask #1: .
- Subtask #2: Không có ràng buộc bổ sung.