题目描述
新人一枚,望指正!
时间复杂度:不知道
空间复杂度:不知道
Java 代码
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
public static void main(String[] args) throws IOException{
String[] str1 = br.readLine().split(" ");
int w = Integer.parseInt(str1[0]);
int m = Integer.parseInt(str1[1]);
int n = Integer.parseInt(str1[2]);
m--; n--; //便于求行和列
int row1 = m / w, row2 = n / w; //行
int cal1 = m % w, cal2 = n % w; //列
int dis = 0;
if(row1 % 2 == row2 % 2){ //同样在奇数行,或者偶数行
dis = Math.abs(cal2 - cal1) + Math.abs(row2 - row1);
}else{ //一个在奇数行,一个在偶数行
//只需要cal2的列数转换即可
//((w - 1) - cal2):表示转换后的cal2
dis = Math.abs(((w - 1) - cal2) - cal1) + Math.abs(row2 - row1);
}
System.out.println(dis);
}
}