#P7182. [BalticOI 2004] Car Park (Day2)

    ID: 7526 远端评测题 1000ms 128MiB 尝试: 0 已通过: 0 显示难度暂无评定 上传者: 标签>2004BalticOI(波罗的海)

[BalticOI 2004] Car Park (Day2)

题目描述

举办 BOI2004 的青年旅社有一个停车场,由 6×66\times 6 的方格组成。行从 11 到 66 从上到下连续编号;列从左到右,编号方法相同。

只有停车场第三排第六列有一个出口。

在那个停车场上,有 nn 辆停着的车。你的车在这些车中,但不幸的是,由于你的车被另一辆车挡住了,你的汽车不能直接出去。你与你的朋友可以移动汽车。但是无论是你自己的车还是其他车都不能转向或转弯。

你需要确定使你的 2×12\times 1 方格车(编号为 11)离开停车场所需的最小步数。一步意味着把一辆车移动一个方格。其他车辆不得驶离停车场。

只有两种车,2×12\times 1 方格车和 3×13\times 1 方格车。汽车只能沿它长的一条边所在的轴移动。

输入格式

第一行一个整数 nn。

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

输出格式

仅一行一个整数,表示使车离开停车场所需的最小步数。

如果不能使车离开,输出 -1。

8
2 1 2 3
2 1 1 1
2 0 1 5
2 1 5 5
3 0 6 1
3 0 1 2
3 0 4 2
3 1 3 6
18

提示

样例 1 说明

步骤(编号 ++ 移动步骤):

  • 4←←←4\gets\gets\gets;
  • 2→2\to;
  • 6↑6\uparrow;
  • 3↑3\uparrow;
  • 8←←8\gets\gets;
  • 5↓↓↓5\downarrow\downarrow\downarrow;
  • 7↓↓7\downarrow\downarrow;
  • 1→→→→→1\to\to\to\to\to。

数据规模与约定

对于 100%100\% 的数据,有 1≤n≤161\le n\le 16,opt∈{0,1}opt\in\{0,1\},l∈{2,3}l\in\{2,3\},1≤x,y≤61\le x,y\le 6。

说明

译自 BalticOI 2004 Day2 C Car Park。