luogu#P7380. [COCI2018-2019#6] Konj

[COCI2018-2019#6] Konj

题目描述

Domagoj 有一种奇特的绘画手法。首先他准备了 NN 条待画的线段,每条线段连接两个点,即 (Ai,Bi)(A_i,B_i)(Ci,Di)(C_i,D_i)。接着,他选定一个点 TT。然后,Domagoj 将画出所有符合下列条件之一的线段:

  • 经过点 TT
  • 与经过点 TT 的线段直接或间接相连

当两条线段 L1,L2L_1,L_2 有一个公共端点时,我们认为 L1,L2L_1,L_2 是直接相连的。当线段 L1L_1H1H_1H1H_1H2H_2\cdotsHkH_kL2L_2 都是直接相连的,那么我们认为 L1,L2L_1,L_2 是间接相连的。

你的任务是打印出 Domagoj 最终画出的图像。输出的形式为一个矩阵 PP。当有线段经过 (a,b)(a,b) 时,应在 P(a,b)P(a,b) 的位置输出 #,否则输出 . 字符。注意横坐标 aa 从左到右依次增大,纵坐标 bb 从下到上依次增大(这与平面直角坐标系的系统保持一致)。矩阵 PP 不能有任何一列或一行都是 . 字符,即矩阵必须在包含所有要画出的线段的前提下,在大小上最小。

输入格式

第一行输入待画线段的个数 NN

接下来的 NN 行,每行输入四个非负整数 Ai,Bi,Ci,DiA_i,B_i,C_i,D_i,表示第 ii 条线段的端点 (Ai,Bi)(A_i,B_i)(Ci,Di)(C_i,D_i)。对于每条线段,AiCiA_i \neq C_iBiDiB_i \neq D_i 将且仅将成立其中一个,即任何一条线段都与坐标轴平行。同时,没有线段会相交,但可能会共用同一个端点。

接下来的一行(即最后一行),输入整数 X,YX,Y,表示 TT 的坐标。保证至少有一条线段的其中一个端点为 TT

输出格式

输出所求的矩阵 PP

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
#####......
#...#......
#...#######
#...#.....#
###########
....#.#.#.#
......#...#
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
..........#
..........#
..........#
###########
#........#.
##########.

提示

样例 1 解释

除了最后一条线段,其它的都需要画出。即除了连接 (42,42)(42,42)(42,43)(42,43) 的线段之外,其它都必须画出。

样例 2 解释

所有线段都必须画出。

数据规模与约定

对于 30%30\% 的数据,需要画出所有线段。

对于 100%100\% 的数据,1N2×1051 \le N \le 2 \times 10^50Ai,Bi,Ci,Di3000 \le A_i,B_i,C_i,D_i \le 300

说明

本题分值按 COCI 原题设置,满分 7070

题目译自 COCI2018-2019 CONTEST #6 T2 Konj