狂飙追击
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

京海市扫黑行动进入关键阶段!安欣警官追踪高启强犯罪集团时,获得了一张坐标图,显示高启强可能藏匿的位置 (tx, ty)。安欣的初始位置在 (sx, sy),必须尽快抵达目标点实施抓捕。

京海市的道路系统十分特殊:在任意位置 (x, y),最大街道编号 m = max(x, y)。安欣每次行动只能选择以下两种方式之一:

1.      沿 x 轴追击:移动到 (x + m, y)

2.      沿 y 轴追击:移动到 (x, y + m)

注意:高启强集团在部分街道布下眼线,因此安欣的每次移动必须严格遵循上述规则。若移动方向错误,将暴露行踪导致任务失败!

任务:
计算安欣从起点 (sx, sy) 到目标点 (tx, ty) 的最少移动次数。若无法到达,返回 -1

输入描述:

一行四个整数 sx, sy, tx, ty,表示起点和目标点坐标。

输出描述:

输出一个整数,表示最少移动次数。若无法到达,输出 -1

示例1

输入

复制
1 1 1 2

输出

复制
1

备注: