atcoder#ABC230C. [ABC230C] X drawing

[ABC230C] X drawing

配点 : 300300

問題文

上下左右に広がる N×NN\times N のマス目があり、最初全てのマスは白く塗られています。このマス目の上から ii 行目、左から jj 列目のマスを (i,j)(i,j) で表します。

高橋君は 11 以上 NN 以下の整数 AA, BB を持っており、次のような操作を行います。

  • max(1A,1B)kmin(NA,NB)\max(1-A,1-B)\leq k\leq \min(N-A,N-B) をみたす全ての整数 kk について、(A+k,B+k)(A+k,B+k) を黒く塗る。
  • max(1A,BN)kmin(NA,B1)\max(1-A,B-N)\leq k\leq \min(N-A,B-1) をみたす全ての整数 kk について、(A+k,Bk)(A+k,B-k) を黒く塗る。

この操作を行った後のマス目について、PiQP\leq i\leq Q かつ RjSR\leq j\leq S をみたす各マス (i,j)(i,j) がそれぞれ何色で塗られているか求めてください。

制約

  • 1N10181 \leq N \leq 10^{18}
  • 1AN1 \leq A \leq N
  • 1BN1 \leq B \leq N
  • 1PQN1 \leq P \leq Q \leq N
  • 1RSN1 \leq R \leq S \leq N
  • (QP+1)×(SR+1)3×105(Q-P+1)\times(S-R+1)\leq 3\times 10^5
  • 入力は全て整数である。

入力

入力は以下の形式で標準入力から与えられる。

NN AA BB

PP QQ RR SS

出力

QP+1Q-P+1 行出力せよ。 各行は #. のみからなる長さ SR+1S-R+1 の文字列であり、 ii 行目の文字列の jj 番目の文字が # であることは (P+i1,R+j1)(P+i-1,R+j-1) が黒く塗られていることを、 . であることは (P+i1,R+j1)(P+i-1,R+j-1) が白く塗られていることをさす。

5 3 2
1 5 1 5
...#.
#.#..
.#...
#.#..
...#.

11 つめの操作で (2,1)(2,1), (3,2)(3,2), (4,3)(4,3), (5,4)(5,4)44 マスが、 22 つめの操作で (4,1)(4,1), (3,2)(3,2), (2,3)(2,3), (1,4)(1,4)44 マスが黒く塗られます。 よって、P=1P=1, Q=5Q=5, R=1R=1, S=5S=5 より、上のように出力します。

5 3 3
4 5 2 5
#.#.
...#

操作によって、 (1,1)(1,1), (1,5)(1,5), (2,2)(2,2), (2,4)(2,4), (3,3)(3,3), (4,2)(4,2), (4,4)(4,4), (5,1)(5,1), (5,5)(5,5)99 マスが 黒く塗られます。 P=4P=4, Q=5Q=5, R=2R=2, S=5S=5 より、上のように出力します。

1000000000000000000 999999999999999999 999999999999999999
999999999999999998 1000000000000000000 999999999999999998 1000000000000000000
#.#
.#.
#.#

入力が 3232 bit 整数型に収まらないことがあることに注意してください。