题目描述
上下左右に広がる 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) が黒く塗られていることを、 .
であることは (P+i−1,R+j−1) が白く塗られていることをさす。
题目大意
给定一个N∗N的格点,给定两个整数 A,B 做以下两个操作:
对每个整数 k 满足 max(1−A,1−B)≤k≤min(N−A,N−B),将 (A+k,B+k) 涂成黑色
对每个整数 k 满足 max(1−A,B−N)≤k≤min(N−A,B−1),将 (A+k,B−k) 涂成黑色
然后给定一个子区域 P≤i≤Q,R≤j≤S需要输出这个子区域的涂色情况
5 3 2
1 5 1 5
...#.
#.#..
.#...
#.#..
...#.
5 3 3
4 5 2 5
#.#.
...#
1000000000000000000 999999999999999999 999999999999999999
999999999999999998 1000000000000000000 999999999999999998 1000000000000000000
#.#
.#.
#.#
提示
制約
- 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
- 入力は全て整数である。
Sample Explanation 1
1 つめの操作で (2,1), (3,2), (4,3), (5,4) の 4 マスが、 2 つめの操作で (4,1), (3,2), (2,3), (1,4) の 4 マスが黒く塗られます。 よって、P=1, Q=5, R=1, S=5 より、上のように出力します。
Sample Explanation 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 より、上のように出力します。
Sample Explanation 3
入力が 32 bit 整数型に収まらないことがあることに注意してください。