Rotate(回転) - joi2012-day2

出典: 第11回日本情報オリンピック 日本代表選手選考会

時間制限: 2秒

メモリ制限: 64MB

課題

正方形のマスが縦 N 行,横 N 列に N \times N 個敷き詰められている盤面がある.上から i 番目,左から j 番目のマスをマス (i, j) と呼ぶ.マス (i, j) には文字 A_{ij} が書かれている.

ある正方形領域を反時計回りに 90 度回転させることを Q 回繰り返す.k 回目の回転は,マス (I_k, J_k) を最も左上のマスとして含む S_k \times S_k 個のマスを含む正方形領域を回転する.

最終的な盤面を求め出力せよ.

制限

2 \leqq N \leqq 1\,000 盤面のサイズ
1 \leqq Q \leqq 2\,000 回転の回数

入力

標準入力から以下の入力を読み込め.

出力

標準出力に,最終的な盤面を N 行で出力せよ.すなわち,i 行目に,N 文字の文字列であって,j 番目の文字が最終的な盤面の (i, j) に書かれている文字となっているものを出力せよ.

採点基準

採点用データのうち,配点の 10% 分については,N \leqq 100, Q \leqq 100を満たす.

入出力の例

入力例1 出力例1
4 1
abcd
efgh
ijkl
mnop
2 2 2
abcd
egkh
ifjl
mnop

この入力は下のような盤面を表す.

abcd
efgh
ijkl
mnop

1 つ目の回転の指示は,「マス (2, 2) を最も左上のマスとして含む 2 \times 2 個のマスを含む正方形領域を回転する」というものである.つまり,

fg
jk

を反時計回りに 90 度回転させ,

abcd
egkh
ifjl
mnop

を得る.