QOJ.ac

QOJ

実行時間制限: 1 s メモリ制限: 64 MB 満点: 70

#13589. 马

統計

Domagoj 喜欢在闲暇时画马。长期以来,他一直是一个致力于这一主题的社交群组的骄傲成员。但 Domagoj 是一个非常特别的男孩,因为他的绘画技巧,大多数人都不理解他的杰作。

他最著名的画作之一是“#define HORSE 42-42”,也被称为“普通的马”(Ordinary Horse)。

15
2 2 6 2
2 2 2 6
6 2 6 4
6 4 6 6
2 6 6 6
6 2 8 2
8 2 10 2
10 2 12 2
12 2 12 4
12 4 6 4
6 2 6 1
8 2 8 0
10 2 10 1
12 2 12 0
42 42 42 43
2 2

你一定在想“那匹马在哪里?”以及“Domagoj 没事吧?”,因为你在画上只能看到一些数字。第一个问题将在下一段中解答,而第二个问题的答案,本题的作者也很想知道。

为了理解这幅画,你需要了解 Domagoj 的绘画技巧。画中的第一个数字是 $N$,表示可能已经绘制的线段数量。接下来的 $N$ 行,每行有四个数 $A_i, B_i, C_i$ 和 $D_i$,描述了从点 $(A_i, B_i)$ 延伸到点 $(C_i, D_i)$ 的第 $i$ 条线段。在画的最后一行有两个数 $X$ 和 $Y$,即点 $T$ 的坐标。Domagoj 将绘制包含点 $T$ 的所有线段,以及直接或间接与包含点 $T$ 的线段相连的所有线段。对于两条线段 $L_1$ 和 $L_2$,如果它们有公共端点,我们称它们为直接相连;如果存在一个线段序列 $L_1, H_1, H_2, \dots, H_k, L_2$,使得线段 $L_1$ 和 $H_1$ 直接相连,$H_1$ 和 $H_2$ 直接相连,……,$H_k$ 和 $L_2$ 直接相连,则称它们为间接相连

你的任务是打印一个字符矩形矩阵 $P$ 来展示 Domagoj 的画作。如果坐标为 $(a, b)$ 的点是某条已绘制线段的一部分,则 $P_{a,b}$ 的值应设为 #,否则该值应设为 .。矩阵中的坐标 $a$ 从左到右递增,而坐标 $b$ 从下到上递增。矩阵 $P$ 应包含属于已绘制线段的所有点,且不应包含任何仅由字符 . 组成的行或列,即它的尺寸应当是最小的(即已绘制图形的最小外接矩形)。

输入格式

输入的第一行包含一个正整数 $N$($1 \le N \le 200\,000$)。

接下来的 $N$ 行中,每行有四个非负整数 $A_i, B_i, C_i$ 和 $D_i$($0 \le A_i, B_i, C_i, D_i \le 300$)。对于每条线段,满足 $A_i \ne C_i$ 或 $B_i \ne D_i$。任意两条线段不会相交,但有些线段可能会有公共端点。所有线段都将平行于坐标轴。

输入的最后一行包含两个非负整数 $X$ 和 $Y$,表示点 $T$ 的坐标。点 $T$ 保证是给定的至少一条线段的一部分。

输出格式

输出题目要求的矩阵 $P$。

子任务

在占总分 30% 的测试样例中,你需要绘制所有的线段。

样例

输入样例 1

15
2 2 6 2
2 2 2 6
6 2 6 4
6 4 6 6
2 6 6 6
6 2 8 2
8 2 10 2
10 2 12 2
12 2 12 4
12 4 6 4
6 2 6 1
8 2 8 0
10 2 10 1
12 2 12 0
42 42 42 43
2 2

输出样例 1

#####......
#...#......
#...#######
#...#.....#
###########
....#.#.#.#
......#...#

输入样例 2

6
1 1 10 1
10 1 10 3
10 3 1 3
1 3 1 1
10 3 11 3
11 3 11 6
2 1

输出样例 2

..........#
..........#
..........#
###########
#........#.
##########.

说明

样例解释:

在第一个样例中,除了最后一条线段外,其他所有线段都应该被绘制。

在第二个样例中,所有线段都应该被绘制,从而得到名为“简笔马”(Summarized horse)的画作。

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.