#arc047d. [arc047_d]ナナメクエリ
[arc047_d]ナナメクエリ
問題文
縦に 行、横に 列の方眼紙があります。
この方眼紙上の最も左上のマスから下に マス、右に マス進んだところにあるマスをマス と呼ぶことにします。 つまり、最も左上のマスはマス 、右下のマスはマス になります。
初め、全てのマスには整数 が書き込まれています。
この方眼紙に 回のクエリ操作を行うことを考えます。 クエリ操作は 種類あり以下のとおりです。
1 A B C
: となる全てのマス にかかれている整数に を加える。 を満たすことが保証される。2 A B C
: となる全てのマス にかかれている整数に を加える。 を満たすことが保証される。3 A B C D
: かつ となる全てのマス の中の最大値 と、その範囲の中に が書かれたマスがいくつあるか求める。 を満たすことが保証される。
このようなクエリを順番に処理するプログラムを書いてください。
入力
入力は以下の形式で標準入力から与えられる。
:
- 行目には方眼紙の大きさを表す整数 とクエリの個数を表す整数 が空白区切りで与えられる。
- 行目からの 行の内 行目には 番目のクエリが与えられる。クエリの形式は問題文中で与えたとおりである。
- 種類目のクエリは 個以上与えられる。
部分点
この問題には部分点が設定されている。
- を満たすデータセットに正解した場合は 点が与えられる。
- を満たすデータセットに正解した場合はさらに 点が与えられる。合計で点となる。
- を満たすデータセットに正解した場合はさらに 点が与えられる。合計で点となる。
出力
出力の行数は 種類目のクエリの個数と等しくなる。 行目には 番目の 種類目のクエリの答えを出力せよ。 範囲の中の最大値を 、その個数を とすると をこの順で空白区切りで出力せよ。 出力の末尾に改行を入れること。
入力例1の説明にミスがあったため、正しいものに差し替えました(21:51)
入力例1
4 4
1 1 4 2
3 0 1 2 3
2 -2 1 3
3 0 3 1 3
出力例1
2 4
5 7
番目のクエリを処理した後の方眼紙の様子は以下の様になります。
番目のクエリの範囲は以下の様な範囲です。
よって最大値は 、 個数は 個になります。
番目のクエリを処理した後の方眼紙の様子は以下の様になります。
番目のクエリの範囲は以下の様な範囲です。
よって最大値は 、 個数は 個になります。
入力例2
50 20
2 5 40 6
1 69 94 5
3 8 39 31 32
2 -29 -21 -10
2 20 43 3
2 -37 36 -10
2 -18 45 5
2 30 39 -2
3 0 1 19 33
3 27 47 0 43
3 0 1 28 39
1 90 97 0
2 -46 31 7
1 81 81 4
1 11 54 3
3 10 29 26 30
1 39 45 3
1 70 97 -4
3 24 46 14 34
3 1 18 48 48
出力例2
11 5
-5 1
14 8
0 3
5 82
16 2
10 5