Mô tả bài toán
Robot ở (x1,y1) muốn đến (x2,y2). Mỗi bước có thể di chuyển đến 1 trong 8 ô lân cận (ngang, dọc, chéo). Tìm số bước tối thiểu.
Ví dụ
(3,4) → (6,1): Δx=3, Δy=3 → max(3,3)=3 bước.
Thuật toán
Vì robot có thể đi chéo, số bước = max(|x2-x1|, |y2-y1|).
Code C++
#include <bits/stdc++.h>
using namespace std;
int solve(int x1, int y1, int x2, int y2) {
return max(abs(x2 - x1), abs(y2 - y1));
}
int main() {
int x1=3, y1=4, x2=6, y2=1;
cout << solve(x1, y1, x2, y2) << endl;
return 0;
}
Đầu vào / Đầu ra
Input: 3, 4, 6, 1
Output: 3