Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
HNMROBOT - Di chuyển Robot |
Cho lưới vuông kích thước n dòng và n cột. Các ông của lưới được đánh số từ 1 đến n. Các ô trên lưới được đánh số từ (i, j) với (i, j) là tọa độ của ô đó. Mỗi ô trên lưới chứa một robot di chuyển theo hướng tăng dần số ô trên lưới (tức là chỉ được phép đi từ ô có số nhỏ hơn đến ô có số lớn hơn). Robot có thể di chuyển theo đường ngang hoặc đường chéo (đường chéo là đường nối hai ô kề nhau nhưng không thẳng hàng).
Yêu cầu: Cần tính đường đi từ ô (L₁, C₁) đến ô (L₂, C₂). Robot có thể di chuyển theo hướng tăng dần số ô trên lưới, tuân theo các điều kiện sau:
- Số lần đổi hướng (tức là robot có thể di chuyển từ ô (L₁, C₁) đến ô (L₂, C₂)).
- Số lần đổi hướng trong trường hợp robot phải di chuyển theo đường thẳng hoặc đường chéo.
- Số lần đổi hướng trong trường hợp robot không được phép quay lại ô đã đi qua.
Yêu cầu: Cần xác định:
- Số lần đổi hướng cần thiết để robot có thể di chuyển từ ô (L₁, C₁) đến ô (L₂, C₂).
- Số lần đổi hướng trong trường hợp robot phải di chuyển theo đường thẳng hoặc đường chéo.
- Số lần đổi hướng trong trường hợp robot không được phép quay lại ô đã đi qua.
Input:
- Dòng thứ nhất chứa số nguyên n, 1 ≤ n ≤ 1000;
- n dòng tiếp theo mô tả lưới n số ô, trong đó mỗi ô chứa một giá trị nguyên dương (i, j) là tọa độ của ô;
- Dòng thứ n+2 chứa 4 số L₁ C₁ L₂ C₂ (đại diện cho tọa độ ô (L₁, C₁) và (L₂, C₂) là các ô xuất phát và đích).
Output:
Ghi ra một số nguyên là số lần đổi hướng cần thiết để robot có thể di chuyển từ ô (L₁, C₁) đến ô (L₂, C₂) trong trường hợp này.
Example
Input:
5
0 1 1 0 0
0 0 0 1 0
1 0 1 1 0
0 0 0 1 0
0 0 0 0 0
1 1 1 5
Output:
4 2 2
Được gửi lên bởi: | noname00.pas |
Ngày: | 2017-11-27 |
Thời gian chạy: | 0.100s-1s |
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 Ôn HN 01/2017 (Thầy Nguyễn Đức Nghĩa) |