import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//所有的类型都应该为long,不然会有个别例子报错
long x = sc.nextLong();
long y = sc.nextLong();
long count = 0;
//点位于原点则输出0
if (x == 0 && y == 0) {
System.out.println(0);
} else {
//计算点位于第几个正方形
long max = Math.max(Math.abs(x), Math.abs(y));
计算内部所有正方形的边长
for (long i = 1; i < max; i++) {
count += 8 * i;
}
//最外围正方形的起点为(-max,-max)
//计算最外围正方形的从起点到点的距离
if (x == (-max) && y <= max && y != (-max)) {//点在正方形的左边,不包括起点
count += y - (-max);
} else if (x > (-max) && y == max) {//点在正方形的上边
count += 2 * max;
count += x - (-max);
} else if (x == max && y < max) {//点在正方形的右边
count += 4 * max;
count += max - y;
} else if (x < max && y == (-max)) {//点在正方形的下边,包括起点
count += 6 * max;
count += max - x;
}
System.out.println(count);
}
}
}
P8668 [蓝桥杯 2018 省 B] 螺旋折线
最新推荐文章于 2024-07-26 12:28:02 发布