AT_abc230_c [ABC230C] X drawing
题目描述
有一个上下左右扩展的 N×N 的网格,最开始所有格子都是白色的。我们用 (i,j) 表示从上往下第 i 行、从左往右第 j 列的格子。
高桥君有两个满足 1 到 N 之间的整数 A 和 B,他会进行如下操作:
- 对于所有满足 max(1−A,1−B)≤k≤min(N−A,N−B) 的整数 k,将 (A+k,B+k) 这个格子涂成黑色。
- 对于所有满足 max(1−A,B−N)≤k≤min(N−A,B−1) 的整数 k,将 (A+k,B−k) 这个格子涂成黑色。
请你输出操作后,对于所有满足 P≤i≤Q 且 R≤j≤S 的格子 (i,j),每个格子的颜色。
输入格式
输入以如下格式从标准输入给出。
N A B P Q R S
输出格式
输出 Q−P+1 行。
每行是一个只由 # 和 . 组成的、长度为 S−R+1 的字符串。第 i 行的第 j 个字符为 # 表示 (P+i−1,R+j−1) 这个格子是黑色,. 表示是白色。
输入输出样例 #1
输入 #1
5 3 2
1 5 1 5
输出 #1
...#.
#.#..
.#...
#.#..
...#.
输入输出样例 #2
输入 #2
5 3 3
4 5 2 5
输出 #2
#.#.
...#
输入输出样例 #3
输入 #3
1000000000000000000 999999999999999999 999999999999999999
999999999999999998 1000000000000000000 999999999999999998 1000000000000000000
输出 #3
#.#
.#.
#.#
说明/提示
约束条件
- 1≤N≤1018
- 1≤A≤N
- 1≤B≤N
- 1≤P≤Q≤N
- 1≤R≤S≤N
- (Q−P+1)×(S−R+1)≤3×105
- 输入均为整数。
样例解释 1
第一次操作会将 (2,1)、(3,2)、(4,3)、(5,4) 这 4 个格子涂黑,第二次操作会将 (4,1)、(3,2)、(2,3)、(1,4) 这 4 个格子涂黑。因此,P=1,Q=5,R=1,S=5,输出如上。
样例解释 2
操作后,(1,1)、(1,5)、(2,2)、(2,4)、(3,3)、(4,2)、(4,4)、(5,1)、(5,5) 这 9 个格子被涂黑。P=4,Q=5,R=2,S=5,输出如上。
样例解释 3
请注意输入可能超出 32 位整数范围。
由 ChatGPT 4.1 翻译