#HK6975. 「ICPC World Finals 2024」翻转集装箱

「ICPC World Finals 2024」翻转集装箱

题目描述

一个大型长方体形状的货运集装箱被送到了你的货运场。在你打开它之前,你需要先将这个集装箱移动到货运场内的另一个位置。

通常情况下,你会使用起重机直接将集装箱吊起并放置到目标位置。不幸的是,你的起重机坏了,现在唯一能移动集装箱的方式是小心翼翼地沿着它的底部四个边缘之一翻转集装箱,从而绕着该边缘的轴线进行 90 度的旋转。你希望通过多次重复这个操作,最终能够到达目标位置。

你究竟需要进行多少次这种翻转操作才能将集装箱移动到正确的位置?请注意,在移动集装箱的过程中它的朝向会发生变化,但最终它必须恢复到与起始时相同的朝向。当两个朝向在坐标系的三个轴上的长度都相同时,认为它们是相同的朝向。集装箱的三个边长是不同的。

输入格式

第一行包含三个不同的整数 aabbcc (1a,b,c1000)(1 \leq a, b, c \leq 1\,000),表示集装箱的尺寸,单位为米。在集装箱的初始朝向中,长度为 aa 的边沿东西方向,长度为 bb 的边沿南北方向,长度为 cc 的边沿上下方向。

第二行包含两个整数 xxyy (1018x,y1018)(-10^{18} \leq x, y \leq 10^{18}),表示集装箱的目标位置。集装箱需要在东西方向上移动 xx 米,在南北方向上移动 yy 米(正数表示向东/北移动,负数表示向西/南移动)。

输出格式

输出将集装箱移动到目标位置所需的最少翻转次数。如果无法到达目标位置,则输出 impossible

3 4 5
8 0

2

3 4 5
-8 9

4

3 4 5
123 45

40

20 10 30
13 37

impossible