AcWing 1219. 移动距离
原题链接
简单
作者:
wyf
,
2020-08-02 12:03:28
,
所有人可见
,
阅读 837
#include<iostream>
#include<cmath>
using namespace std;
int w,m,n;
int main(){
cin>>w>>m>>n;
int x1,x2,y1,y2;
if(m%w==0&&(m/w)%2==0){//求偶数行第一格的情况
x1=m/w-1;
y1=0;
}
else if(m%w==0&&(m/w)%2==1){//求奇数行最后一格的情况
x1=m/w-1;
y1=w-1;
}
else if((m/w)%2==1){//求偶数行的情况
x1=m/w;
y1=w-m%w;
}
else if((m/w)%2==0){//求奇数行的情况
x1=m/w;
y1=m%w-1;
}
if(n%w==0&&(n/w)%2==0){
x2=n/w-1;
y2=0;
}
else if(n%w==0&&(n/w)%2==1){
x2=n/w-1;
y2=w-1;
}
else if((n/w)%2==1){
x2=n/w;
y2=w-n%w;
}
else {
x2=n/w;
y2=n%w-1;
}
cout<<abs(x1-x2)+abs(y1-y2)<<endl;
return 0;
}