#WHX2023C. 走棋盘(robot)

走棋盘(robot)

题目描述

SmartSmart 的老师很喜欢围棋。众所周知,围棋的棋盘有 19 行 19 列,共有 361 个交叉点。为方便起见,我们把这些行列按顺序编号为 1~19,并用 (x,y)(x, y) 表示第 xx 列第 yy 行的位置。例如下图中,AA(16,4)(16,4) 表示,BB(14,3)(14, 3) 表示。

SmartSmart 在做一个机器人的项目,他正思考这样一个问题:如果一个小机器人从 (x1,y1)(x_1, y_1) 这个位置出发,沿直线移动到 (x2,y2)(x_2, y_2) 这个位置,它一共经过了多少个交叉点?

注意起点和终点也算作经过,因此至少经过了2个交叉点。

输入格式

输入数据仅有一行包含 4 个用空格隔开的正整数,分别表示 x1,y1,x2,y2x_1, y_1, x_2, y_2

输出格式

输出一行包含一个小于 20 的正整数,表示从 (x1,y1)(x_1, y_1) 沿直线移动到 (x2,y2)(x_2, y_2) 经过的交叉点的个数。

样例

输入#1

4 4 4 16

输出#1

13

输入#2

1 1 19 19

输出#2

19

输入#3

1 1 7 5

输出#3

3

提示

样例解释3

经过了 (1,1),(4,3),(7,5)(1, 1), (4, 3), (7, 5) 共 3 个交叉点,你在图上画条直线就能一目了然看出来。

数据范围

  • 对于20%的数据,x1=x2x_1=x_2
  • 对于另外20%的数据,y1=y2y_1=y_2
  • 对于另外30%的数据,满足 x1x2=y1y2|x_1-x_2|=|y_1-y_2|,它们是某个正方形的两个对角顶点;
  • 对于100%的数据,1x1,y1,x2,y2191 \le x_1, y_1, x_2, y_2 \le 19