#P17560. PM2920 六边形相交

PM2920 六边形相交

题目描述

平面被完全划分为大小相同的正六边形,形成一个六边形网格。每个六边形使用一对整数坐标 (x,y)(x,y) 标识,坐标方式如下图所示:

给定两个不同六边形的坐标 (x0,y0)(x_0,y_0)(x1,y1)(x_1,y_1)。连接这两个六边形的中心,得到一条线段。

请计算这条线段穿过了多少个六边形的内部

如果线段只经过某个六边形的一个顶点,不计入该六边形;如果线段与某条六边形边完全重合,也不因为这条边而计入边两侧的六边形。起点和终点所在的六边形显然都会被计入。

输入格式

输入一行四个整数:

x0 y0 x1 y1

分别表示两个六边形的坐标 (x0,y0)(x_0,y_0)(x1,y1)(x_1,y_1)

输出格式

输出一个整数,表示连接两个六边形中心的线段穿过内部的六边形数量。

样例 1

输入

1 -2 3 1

输出

4

样例 2

输入

0 0 1 0

输出

2

样例 3

输入

0 0 1 1

输出

2

样例 4

输入

0 0 0 1

输出

2

数据范围

  • 10000x0,y0,x1,y110000-10000\le x_0,y_0,x_1,y_1\le10000
  • (x0,y0)(x1,y1)(x_0,y_0)\ne(x_1,y_1)