Đóng thẻ trình duyệt
Đề bài
Mô tả
Trên trình duyệt đang mở thẻ (tab), đánh số từ đến theo thứ tự từ trái sang phải. Con trỏ chuột đang ở thẻ số .
Bạn chỉ cần dùng các thẻ có chỉ số từ đến , nên muốn đóng toàn bộ những thẻ nằm ngoài đoạn càng nhanh càng tốt.
Gọi và lần lượt là chỉ số nhỏ nhất và lớn nhất trong số các thẻ chưa bị đóng ở thời điểm hiện tại. Mỗi giây, khi con trỏ đang ở thẻ , bạn được chọn đúng một trong bốn thao tác:
- Chuyển con trỏ sang trái: con trỏ tới thẻ .
- Chuyển con trỏ sang phải: con trỏ tới thẻ .
- Đóng mọi thẻ bên trái con trỏ, tức là các thẻ có chỉ số trong đoạn .
- Đóng mọi thẻ bên phải con trỏ, tức là các thẻ có chỉ số trong đoạn .
Ví dụ, nếu ban đầu có thẻ và các thẻ đã bị đóng thì và .
Hãy tính số giây ít nhất cần dùng để cuối cùng chỉ còn lại đúng những thẻ có chỉ số ban đầu từ đến .
Dữ liệu vào
Một dòng duy nhất chứa bốn số nguyên , , , : số thẻ ban đầu, vị trí con trỏ, và đoạn thẻ cần giữ lại.
Dữ liệu ra
In ra một số nguyên duy nhất là số giây ít nhất cần dùng.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 2 1 5 | 0 | Đoạn cần giữ đã là toàn bộ các thẻ, không cần làm gì. |
| 6 3 1 3 | 1 | Chỉ cần đóng mọi thẻ bên phải con trỏ (các thẻ ). |
| 6 3 2 4 | 5 | Chuyển con trỏ sang thẻ , đóng phần bên trái, rồi chuyển con trỏ sang thẻ , sang thẻ , và đóng phần bên phải. |
Bình luận