#include<bits/stdc++.h>
#define int long long
#define i64 int_fast64_t
using namespace std;
int mark[1005][1005];
int dis[1005][1005];
int x1,ye,x2,y2;
int sx,sy,ex,ey;
int d[12][2] = {2,1,-2,-1,2,-1,-2,1,1,2,-1,-2,1,-2,-1,2,-2,2,2,2,2,-2,-2,-2};
struct node{
int x,y;
};
void bfs(int x,int y,int n,int m){
queue<node > q;
q.push({x,y});
memset(mark,0,sizeof(mark));
memset(dis,0,sizeof(dis));
mark[x][y] = 1;
dis[x][y] = 0;
while(!q.empty()){
node t = q.front();
q.pop();
for(int i=0;i<12;i++){
int dx = t.x + d[i][0];
int dy = t.y + d[i][1];
if(!mark[dx][dy] && dx >= 1&&dx <= n&&dy>=1&&dy <= m){
mark[dx][dy] = 1;
q.push({dx,dy});
dis[dx][dy] = dis[t.x][t.y] + 1;
if(dx == 1 && dy == 1){
cout << dis[dx][dy] << endl;
return ;
}
}
}
}
}
signed main(){
cin >> x1 >> ye;
cin >> x2 >> y2;
bfs(x1,ye,x1,ye);
bfs(x2,y2,x2,y2);
return 0;
}
有没有大佬知道为什么wa 还有为什么我下载数据,这组数据为什么要这样输出:
输入样例3:
1 2
2 1
输出样例3:
1
1