#P16969. [SGU419] Hexagonal Walkaround

[SGU419] Hexagonal Walkaround

题目描述

一辆“左转型六边形坦克”在六边形网格上移动。任意时刻,它位于某个格子 (x,y)(x,y),并朝向 050\sim5 中的一个方向。

本题采用如下方向坐标定义:

方向 坐标增量
0 (1,0)(1,0)
1 (0,1)(0,1)
2 (1,1)(-1,1)
3 (1,0)(-1,0)
4 (0,1)(0,-1)
5 (1,1)(1,-1)

每一回合坦克必须移动到相邻格子,并且只能执行以下两种动作之一:

  1. 保持当前朝向,向前移动一格;
  2. 先向左转一个方向,即朝向变为 (d+1)mod6(d+1)\bmod6,然后沿新方向向前移动一格。

此外,坦克不能连续超过 bb 次沿同一个方向移动

初始时坦克位于 (0,0)(0,0),朝向为 d1d_1。你需要让它最终到达格子 (x,y)(x,y),并且最终朝向为 d2d_2

求最少需要多少回合。

输入格式

输入一行五个整数:

x y d2 d1 b

其中:

  • 1012x,y1012-10^{12}\le x,y\le10^{12}
  • 0d1,d250\le d_1,d_2\le5
  • 2b102\le b\le10

注意输入中方向顺序是 d2 d1

输出格式

输出一个整数,表示到达目标状态所需的最少回合数。

样例 1

3 3 1 5 3
6

样例 2

-1 -3 4 2 2
10