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

[蓝桥杯 2022 省 Python B] 蜂巢

题目描述

蜂巢由大量的六边形拼接而成,定义蜂巢中的方向为:00 表示正西方向,11 表示西偏北 60∘60^\circ,22 表示东偏北 60∘60^\circ,33 表示正东,44 表示东偏南 60∘60^\circ,55 表示西偏南 60∘60^\circ。

对于给定的一点 OO,我们以 OO 为原点定义坐标系,如果一个点 AA 由 OO 点先向 dd 方向走 pp 步再向 (d+2) mod 6(d+2) \bmod 6 方向(dd 的顺时针 120∘120^\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,p2≤103p_1, p_2 \leq 10^3;
  • 对于 50%50\% 的评测用例, p1,p2≤105p_1, p_2 \leq 10^5;
  • 对于 75%75\% 的评测用例, p1,p2≤107p_1, p_2 \leq 10^7;
  • 对于所有评测用例, 0≤d1,d2≤50 \leq d_1, d_2 \leq 5, 0≤q1<p1≤1090 \leq q_1 < p_1 \leq 10^9, 0≤q2<p2≤1090 \leq q_2 < p_2 \leq 10^9。