P7182 [BalticOI 2004] Car Park (Day2)

题目描述

举办 BOI2004 的青年旅社有一个停车场,由 $6\times 6$ 的方格组成。行从 $1$ 到 $6$ 从上到下连续编号;列从左到右,编号方法相同。 只有停车场第三排第六列有一个出口。 在那个停车场上,有 $n$ 辆停着的车。你的车在这些车中,但不幸的是,由于你的车被另一辆车挡住了,你的汽车不能直接出去。你与你的朋友可以移动汽车。但是无论是你自己的车还是其他车都不能转向或转弯。 你需要确定使你的 $2\times 1$ 方格车(编号为 $1$)离开停车场所需的最小步数。一步意味着把一辆车移动一个方格。其他车辆不得驶离停车场。 只有两种车,$2\times 1$ 方格车和 $3\times 1$ 方格车。汽车只能沿它长的一条边所在的轴移动。

输入格式

第一行一个整数 $n$。 接下来 $n$ 行,每行四个整数 $l,opt,x,y$,分别表示汽车长度、停放的方向(纵向为 `0`,横向为 `1`)、汽车左上角坐标。

输出格式

仅一行一个整数,表示使车离开停车场所需的最小步数。 如果不能使车离开,输出 `-1`。

说明/提示

#### 样例 1 说明 ![](https://cdn.luogu.com.cn/upload/image_hosting/m0jylu1y.png) 步骤(编号 $+$ 移动步骤): - $4\gets\gets\gets$; - $2\to$; - $6\uparrow$; - $3\uparrow$; - $8\gets\gets$; - $5\downarrow\downarrow\downarrow$; - $7\downarrow\downarrow$; - $1\to\to\to\to\to$。 #### 数据规模与约定 对于 $100\%$ 的数据,有 $1\le n\le 16$,$opt\in\{0,1\}$,$l\in\{2,3\}$,$1\le x,y\le 6$。 #### 说明 译自 [BalticOI 2004 Day2 C Car Park](https://boi.cses.fi/files/boi2004_day2.pdf)。