根据题意进行模拟,细心注意边界问题即可
原题
#include<bits/stdc++.h>
using namespace std;
const int N = 1e4 + 10;
int w, n, m;
int x[2], y[2];
int main()
{
cin>>w>>m>>n;
if(m % w != 0){
x[0] = m / w + 1;
}
else if(m % w == 0){
x[0] = m / w;
}
if(n % w != 0){
x[1] = n / w + 1;
}
else if(n % w == 0){
x[1] = n / w;
}
if(x[0] % 2){
if(m % w){
y[0] = m % w;
}
else{
y[0] = w;
}
}
else if(x[0] % 2 == 0){
if(m % w){
y[0] = w + 1 - (m % w);
}
else {
y[0] = 1;
}
}
if(x[1] % 2){
if(n % w){
y[1] = n % w;
}
else {
y[1] = w;
}
}
else if(x[1] % 2 == 0){
if(n % w){
y[1] = w + 1 - (n % w);
}
else {
y[1] = 1;
}
}
// cout<<x[0]<<' '<<y[0]<<endl;
// cout<<x[1]<<' '<<y[1]<<endl;
cout<<abs(y[0] - y[1]) + abs(x[1] - x[0])<<endl;
return 0;
}