Thời gian đọc ổ cứng
Đề bài
Mô tả
Một ổ cứng có đầu đọc hoạt động song song. Các rãnh (track) của ổ cứng được đánh số bằng các số nguyên từ trái sang phải. Ban đầu đầu đọc thứ nằm trên rãnh .
Trong mỗi giây, phần sụn của ổ cứng có thể cho mỗi đầu đọc dịch sang trái đúng một rãnh, dịch sang phải đúng một rãnh, hoặc đứng yên. Các đầu đọc di chuyển hoàn toàn độc lập với nhau: chúng có thể đổi thứ tự tương đối cho nhau, và nhiều đầu đọc có thể cùng nằm trên một rãnh.
Một rãnh được coi là đã đọc nếu có ít nhất một đầu đọc từng đi qua rãnh đó. Nói riêng, ngay tại thời điểm ban đầu các rãnh đã được đọc.
Cần đọc rãnh phân biệt mang số hiệu . Hãy tìm thời gian ít nhất để đọc được tất cả các rãnh này. Việc đọc thêm những rãnh khác là được phép.
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và : số đầu đọc và số rãnh cần đọc.
- Dòng thứ hai chứa số nguyên : vị trí ban đầu của các đầu đọc.
- Dòng thứ ba chứa số nguyên : số hiệu các rãnh cần đọc.
Dữ liệu ra
Một số nguyên duy nhất: thời gian ít nhất (tính bằng giây) để đọc hết tất cả các rãnh yêu cầu.
Ràng buộc
- và
- và
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 4 2 5 6 1 3 6 8 |
2 | Trong 2 giây: đầu đọc thứ nhất đi sang trái 1 rãnh (đọc rãnh 1), đầu đọc thứ hai đi sang trái 2 rãnh (đọc rãnh 4 rồi rãnh 3), đầu đọc thứ ba đi sang phải 2 rãnh (đọc rãnh 7 rồi rãnh 8); rãnh 6 đã được đọc ngay từ đầu. Không thể xong trong 1 giây vì đầu đọc gần rãnh 8 nhất cách nó 2 rãnh. |
| 3 3 1 2 3 1 2 3 |
0 | Mọi rãnh cần đọc đều đã có sẵn đầu đọc, không cần di chuyển. |
| 1 2 165 142 200 |
81 | Chỉ có một đầu đọc, nó phải đi sang trái tới rãnh 142 (mất 23 giây) rồi quay sang phải tới rãnh 200 (mất thêm 58 giây), tổng cộng 81 giây. Nếu đi sang phải trước rồi quay lại thì mất giây. |
Bình luận