QOJ.ac

QOJ

時間限制: 5 s 記憶體限制: 1024 MB 總分: 100

#3111. 一杆进洞

统计

Janine 最近去当地的游戏店买了一款名为“Hole in One”的电脑迷你高尔夫游戏。顾名思义,游戏的目标是用一次击球将球打入洞中。该游戏还借鉴了打砖块游戏的元素:在场地中放置了若干面墙,球击中墙后墙会被摧毁。成功击球的得分取决于被摧毁墙的数量,因此 Janine 想知道:在完成“一杆进洞”的同时,最多能击中多少面墙?

为了解决这个问题,你可以将场地看作一个笛卡尔平面,球的初始位置在原点。墙是该平面内互不相交的轴平行线段(即平行于 $x$ 轴或 $y$ 轴)。球的直径可以忽略不计,因此将其视为一个点。

图 H.1:第一个样例输入的示意图:球首先在点 1 和点 2 处反弹。当它经过点 3 时,该墙已经消失。

每当球击中一面墙时,会发生两件事: 球的运动方向按常规方式改变:入射角等于反射角。 被球触碰的墙被摧毁。遵循常见的电子游戏逻辑,墙不会留下任何残骸;它就像消失了一样。

球的行为也受到击球力度的影响。特别地,一次最优的击球可能需要先滚过球洞,然后再击中更多墙,最后才落入洞中。

输入格式

输入包含: 一行,包含一个整数 $n$ ($0 \le n \le 8$),表示墙的数量; 一行,包含两个整数 $x$ 和 $y$,表示球洞的坐标; * $n$ 行,每行包含四个整数 $x_1, y_1, x_2$ 和 $y_2$(满足 $x_1 = x_2$ 或 $y_1 = y_2$,但不同时满足),表示一面以 $(x_1, y_1)$ 和 $(x_2, y_2)$ 为端点的墙。

球洞不在原点,也不在墙上。墙之间互不接触或相交。没有墙完全位于 $x$ 轴或 $y$ 轴上。输入中的所有坐标均为整数,绝对值不超过 $1\,000$。

输出格式

如果无法通过击球使球进入球洞,请输出 impossible。否则,输出在一次“一杆进洞”中最多能摧毁的墙的数量。

样例

样例输入 1

3
4 2
1 1 1 2
2 1 2 2
3 1 3 2

样例输出 1

2

样例输入 2

1
2 0
1 -1 1 1

样例输出 2

impossible

样例输入 3

2
-2 4
2 4 2 2
0 6 -2 6

样例输出 3

2

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.