#P12739. [POI 2016 R2] 快打砖块 Arkanoid
[POI 2016 R2] 快打砖块 Arkanoid
题目背景
翻译来自于 LibreOJ。
题目描述
题目译自 XXIII Olimpiada Informatyczna — II etap Arkanoid
Arkanoid 是一款经典的电脑游戏,玩家通过移动一块挡板,反弹在游戏区域内移动的小球,用以击碎区域中的砖块。目标是击碎所有砖块。熟悉这款游戏的玩家都知道,击碎最后几块砖块往往既耗时又令人抓狂。因此,编写一个程序,根据初始游戏区域布局,计算赢得游戏所需的时间,将大有裨益。为简化问题,我们假设玩家操作完美无瑕,总能用挡板中心精准反弹小球。
游戏区域为长 、高 的矩形,其中 为奇数,且 与 互质。区域上定义了一个直角坐标系:左下角为 ,右上角为 。为简化模型,假设小球尺寸可忽略,挡板厚度也可忽略。挡板沿直线 水平移动,小球初始位于点 ,初始速度向量为 。
当小球触碰到挡板、区域边界或任意砖块时,会发生完全弹性碰撞。此外,被触碰的砖块将被击碎并从区域中消失。请计算经过多少时间单位,所有砖块被击碎。
输入格式
第一行包含三个整数 ,分别表示游戏区域的宽度、高度和初始砖块数量。
接下来的 行描述砖块位置,第 行包含两个整数 ,表示存在一块砖块,其为对角顶点为 和 的矩形。保证位置 处无砖块。
输出格式
输出一行,包含一个整数,表示所有砖块被击碎所需的时间单位数。
5 4 3
2 3
5 2
3 3
22
提示
样例 1 解释
附加样例
- ,答案较大。
- ,砖块构成不触碰区域边界的棋盘格布局。
- ,砖块位于 $\left(\frac{m-1}{2}, 2\right), \left(\frac{m-5}{2}, 2\right), \left(\frac{m-9}{2}, 2\right), \ldots$。
- ,仅一块砖块位于 ,答案较大。
详细子任务附加限制及分值如下表所示。
子任务 | 附加限制 | 分值 |
---|---|---|
,砖块互不直接接触且不触碰区域边界 | ||