Cắt dải giấy
Đề bài
Mô tả
Cho một dải giấy gồm số nguyên viết từ trái sang phải.
Bạn cần cắt dải giấy thành một số đoạn liên tiếp (có thể chỉ một đoạn). Mỗi đoạn phải thỏa mãn đồng thời hai điều kiện:
- Đoạn chứa ít nhất số.
- Hiệu giữa số lớn nhất và số nhỏ nhất trong đoạn không vượt quá .
Hãy tìm số đoạn ít nhất có thể cắt được sao cho mọi đoạn đều thỏa mãn các điều kiện trên. Nếu không tồn tại cách cắt hợp lệ, in ra .
Dữ liệu vào
- Dòng đầu chứa ba số nguyên , , .
- Dòng thứ hai chứa số nguyên .
Dữ liệu ra
- In ra một số nguyên là số đoạn ít nhất, hoặc nếu không có cách cắt hợp lệ.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 7 2 2 1 3 1 2 4 1 2 |
3 | Cắt thành 3 đoạn: [1, 3, 1], [2, 4], [1, 2]. Mỗi đoạn có ít nhất 2 số và hiệu max−min ≤ 2. |
| 7 2 2 1 100 1 100 1 100 1 |
-1 | Không thể xếp 1 và 100 chung một đoạn, mà mọi đoạn phải có ít nhất 2 số, nên không có cách cắt hợp lệ. |
Bình luận