Tăng theo modulo
Đề bài
Mô tả
Cho một dãy số nguyên , mỗi số nằm trong đoạn từ đến .
Trong một thao tác, bạn được chọn một tập chỉ số bất kỳ (có thể rỗng) , rồi thay đồng thời mỗi thành . Giá trị là cố định cho mọi thao tác.
Nói cách khác, mỗi thao tác cho phép tăng thêm theo modulo cho bao nhiêu phần tử tuỳ ý, kể cả tất cả.
Hãy tìm số thao tác ít nhất cần dùng để dãy trở thành không giảm, tức là . Nếu dãy đã không giảm sẵn thì đáp án là . Luôn tồn tại cách làm với đủ số thao tác.
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và .
- Dòng thứ hai chứa số nguyên .
Dữ liệu ra
Một dòng chứa một số nguyên: số thao tác ít nhất cần thực hiện.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 3 0 0 0 1 2 |
0 | Dãy đã không giảm nên không cần thao tác nào. |
| 5 7 0 6 1 3 2 |
1 | Dùng một thao tác với tập chỉ số : và . Dãy trở thành , đã không giảm. Không thể làm với thao tác vì dãy ban đầu có . |
Bình luận