Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
LCSPYLOO - Điệp viên L00 |
Địa bàn hoạt động của một điệp viên là một khu phố mà ở đó chỉ có các đường phố ngang, dọc tạo thành một lưới ô vuông. Với mục đích bảo mật, thay vì tên đường phố, điệp viên đánh số các phố ngang (dòng) từ 0 đến m và các phố dọc (cột) từ 0 đến n. Ở một số ngã ba hoặc ngã tư có các trạm kiểm soát. Anh ta đang đứng ở nút giao của hai đường (i1, j1) (i1 - đường ngang; j1 - đường dọc) và cần tới điểm hẹn ở giao của hai đường (i2, j2). Để tránh bị theo dõi, đường đi phải không qua các trạm kiểm soát và cứ tới chỗ rẽ thì nhất thiết phải đổi hướng đi, thậm chí có thể sang đường và đi ngược trở lại. Việc đổi hướng chỉ được thực hiện ở ngã ba hoặc ngã tư. Hãy xác định đường đi ngắn nhất tới điểm hẹn hoặc cho biết không có đường đi đáp ứng được yêu cầu đã nêu.
Input:
- Dòng đầu: m n i1 j1 i2 j2 ( 0 ≤ m, n ≤ 100)
- Các dòng sau: mỗi dòng 2 số i, j (toạ độ trạm kiểm soát).
Output:
- Dòng đầu: độ dài đường đi ngắn nhất hoặc thông báo NO nếu không có đường đi.
- Các dòng sau: mỗi dòng 2 số i, j chỉ nút tiếp theo cần tới theo đường đi tìm được, bắt đầu là i1 j1 và kết thúc là i2 j2.
Example:
Input:
5 4 0 0 5 4
0 1
0 4
2 2
2 3
4 0
5 2
5 3
Output:
13
0 0
1 0
1 1
1 0
2 0
2 1
3 1
3 2
4 2
4 3
3 3
4 3
4 4
5 4
Được gửi lên bởi: | noname00.pas |
Ngày: | 2017-11-07 |
Thời gian chạy: | 0.100s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | C-CLANG C CSHARP C++ 4.3.2 CPP CPP14 CPP14-CLANG C99 JAVA PAS-FPC PYTHON PYTHON3 |
Nguồn bài: | Bài tập thực hành CSL (Lào Cai cung cấp) |