AlgoMooc
← 返回题库

K0073. 魔法结界距离统计

中等通过率 53% · 提交 43 · 通过 23
模拟哈希表排序枚举

在魔法大陆上,许多魔法师布下了各自的魔法结界,用于镇守关键节点。每个结界是一个矩形,由其左上角坐标和大小决定。如今,小慕正在构建一个新的结界作为目标,并希望统计它与其他所有魔法结界之间的距离关系。 魔法世界的“距离”定义如下: * 若两个矩形有交集(重叠),则距离不参与统计。 * 若在 `x` 方向,则距离为 `y` 方向上。 * 若在 `y` 方向投影有重叠,则距离为 `x` 方向上边界之间的最小非负间距。 * 否则视为无(不可达,不参与统计)。 你的任务是:统计所有与目标结界存在合法距离的其他矩形,并输出每种距离出现的次数,按距离升序排列。

提示:带虚线的词点一下有通俗解释。

输入描述

* 第一行输入一个整数 `n` (`1 <= n <= 100`),表示魔法师布下的矩形结界数量; * 接下来 `n` 行,每行四个整数,表示一个结界的 `{row, col, width, height}`; * 最后一行是目标矩形的 `{row, col, width, height}`; * 所有坐标与尺寸满足: * `0 <= row, col < 100` * `1 <= width, height <= 100` * 矩形完全落在 `100 x 100` 的棋盘内。

输出描述

* 每行输出两个整数 `d cnt`,表示距离为 `d` 的结界有 `cnt` 个; * 所有结果按照 `d` 从小到大排序; * 若没有任何一个矩形满足合法距离(即所有距离为 `0` 或不可达),则输出`-1`

示例

示例 1

输入

5
0 0 3 3
5 0 3 3
10 0 3 3
0 5 3 3
0 10 3 3
0 3 3 3

输出

0 1
4 1

说明:``` 012345678901234 0AAATTT....EEE.. 1AAATTT....EEE.. 2AAATTT....EEE.. 3............... 4............... 5............... 6............... 7............... 8............... 9............... 0............... 1............... 2............... ``` 如图所示是满足条件的那2个矩阵。

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解(训练营专属)

登录后查看题目图解

题目图解为训练营学员专属内容,请先登录。

微信扫码登录还不是训练营学员?了解训练营 →
写完代码点「提交」,将对全部测试用例判题。