Trình soạn thảo
Đề bài
Mô tả
Một trình soạn thảo văn bản đang mở một tệp gồm dòng, dòng thứ chứa ký tự (kể cả dấu cách). Nếu một dòng có ký tự thì trên dòng đó con trỏ có thể đứng ở vị trí: trước một ký tự bất kỳ, hoặc sau toàn bộ ký tự (cuối dòng). Vị trí con trỏ được mô tả bằng cặp số với là chỉ số dòng và là chỉ số vị trí trên dòng đó, đánh số từ .
Con trỏ chỉ được di chuyển bằng bốn phím Lên, Xuống, Trái, Phải. Giả sử trước khi bấm phím con trỏ đang ở :
- Lên: nếu thì con trỏ đứng yên. Ngược lại con trỏ chuyển sang dòng và giữ nguyên chỉ số ; nếu dòng quá ngắn để chứa vị trí thì con trỏ nhảy về vị trí cuối cùng của dòng .
- Xuống: tương tự với dòng ; nếu thì con trỏ đứng yên.
- Trái: nếu thì con trỏ về vị trí , ngược lại con trỏ đứng yên.
- Phải: nếu thì con trỏ sang vị trí , ngược lại con trỏ đứng yên.
Hãy tìm số lần bấm phím ít nhất để đưa con trỏ từ vị trí đến vị trí .
Dữ liệu vào
- Dòng đầu chứa số nguyên là số dòng của tệp.
- Dòng thứ hai chứa số nguyên .
- Dòng thứ ba chứa bốn số nguyên .
Dữ liệu ra
Một số nguyên duy nhất là số lần bấm phím ít nhất.
Ràng buộc
- ,
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 10 1 10 1 10 1 1 |
3 | Con trỏ đứng ở và cần về trên cùng dòng đó. Bấm Trái lần thì tốn lượt, nhưng dòng chỉ có vị trí: bấm Xuống đưa con trỏ về , bấm Lên quay lại , rồi bấm Trái một lần. |
| 4 2 1 6 4 3 4 4 2 |
3 | Từ bấm Trái về , bấm Xuống về vì dòng có vị trí nên chỉ số giữ nguyên, rồi bấm Trái về . |
| 4 10 5 6 4 1 11 4 2 |
6 | Bấm Xuống ba lần: , sau đó bấm Trái ba lần để về . |
Bình luận