풀이
.
코드
#include <cstdio>
#include <cstring>
#include <queue>
using namespace std;
typedef pair<int, int> pii;
const int dx[] = { 1,2,2,1,-1,-2,-2,-1 };
const int dy[] = { -2,-1,1,2,2,1,-1,-2 };
int n, x, y, a, b, dst[303][303];
queue<pii> que;
int main() {
int tc;
for (scanf("%d", &tc); tc; tc--) {
scanf("%d %d %d %d %d", &n, &x, &y, &a, &b);
que.push({ x,y });
dst[x][y] = 1;
while (!que.empty()) {
pii now = que.front();
que.pop();
for (int i = 0; i < 8; i++) {
int nx = now.first + dx[i], ny = now.second + dy[i];
if (nx < 0 || nx >= n || ny < 0 || ny >= n) continue;
if (!dst[nx][ny]) {
dst[nx][ny] = dst[now.first][now.second] + 1;
que.push({ nx,ny });
}
}
}
printf("%d\n", dst[a][b] - 1);
memset(dst, 0, sizeof(dst));
}
return 0;
}
아무말
백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이