#P12367. [蓝桥杯 2022 省 Python B] 蜂巢

[蓝桥杯 2022 省 Python B] 蜂巢

题目描述

蜂巢由大量的六边形拼接而成,定义蜂巢中的方向为:00 表示正西方向,11 表示西偏北 6060^\circ22 表示东偏北 6060^\circ33 表示正东,44 表示东偏南 6060^\circ55 表示西偏南 6060^\circ

对于给定的一点 OO,我们以 OO 为原点定义坐标系,如果一个点 AAOO 点先向 dd 方向走 pp 步再向 (d+2)mod6(d+2) \bmod 6 方向(dd 的顺时针 120120^\circ 方向)走 qq 步到达,则这个点的坐标定义为 (d,p,q)(d, p, q)。在蜂窝中,一个点的坐标可能有多种。

下图给出了点 B(0,5,3)B(0, 5, 3) 和点 C(2,3,2)C(2, 3, 2) 的示意。

给定点 (d1,p1,q1)(d_1, p_1, q_1) 和点 (d2,p2,q2)(d_2, p_2, q_2), 请问他们之间最少走多少步可以到达?

输入格式

输入一行包含 66 个整数 d1,p1,q1,d2,p2,q2d_1, p_1, q_1, d_2, p_2, q_2 表示两个点的坐标, 相邻两个整数之间使用一个空格分隔。

输出格式

输出一行包含一个整数表示两点之间最少走多少步可以到达。

0 5 3 2 3 2
7

提示

评测用例规模与约定

  • 对于 25%25\% 的评测用例, p1,p2103p_1, p_2 \leq 10^3;
  • 对于 50%50\% 的评测用例, p1,p2105p_1, p_2 \leq 10^5;
  • 对于 75%75\% 的评测用例, p1,p2107p_1, p_2 \leq 10^7;
  • 对于所有评测用例, 0d1,d250 \leq d_1, d_2 \leq 5, 0q1<p11090 \leq q_1 < p_1 \leq 10^9, 0q2<p21090 \leq q_2 < p_2 \leq 10^9