时间复杂度O(1);
官方思路:
# include<stdio.h>
int main()
{
int w,m,n,i,num;
int row[2],column[2];
int a[2];
int result;
while(scanf("%d%d%d",&w,&m,&n)!=EOF)
{
a[0]=m;
a[1]=n;
for(i=0;i<2;i++)
{
num=a[i];
row[i]=num%w==0?num/w-1:num/w;
if(row[i]%2==0)
//偶数行
{
column[i]=num%w==0?w-1:num%w-1;
}
else
//奇数行
{
column[i]=w-num%w;
}
}
result=abs(row[0]-row[1])+abs(column[0]-column[1]);
printf("%d\n",result);
}
return 0;
}