#codefestivalrelaye. [code_festival_relay_e]変な足し算
[code_festival_relay_e]変な足し算
問題文
縦 、横 で 個の正方形のマスに区切られたボードを考えます。各マスには0
から9
の 桁の数字か、もしくは.
(ドット)が書かれています。また、ボードには、左上のマスが 、右上が 、左下が 、右下が となるように、それぞれのマスに対して順に座標が振られています。
ボード内に書かれた整数が つになるまで以下の手順を繰り返します。
-
整数が書かれたマスの組で、マンハッタン距離が最大になるような組の中から つをランダムに選びます。(マンハッタン距離とは、 つのマスの座標がそれぞれ 、 であるとき、 で計算される距離のことです)
-
1. で選んだ組において、マスに書かれた整数の和を元の数が大きいほうのマスに上書きし、小さいほうのマスには
.
を上書きします。もし元の数が等しい場合は、好きなほうに整数の和を上書きし、他方を.
で上書きします。
上記手順が終了した後、ボード内に残る可能性のある整数のうち、最大のものを求めてください。
入力
入力は以下の形式で与えられる。
- 行目には、ボードの縦と横の長さを表す整数 , () が与えられる。
- 続く 行には、ボードの情報が与えられる。
- はボードの上から 行目の情報を表し、
0
から9
の 桁の整数もしくは.
を含む長さ の文字列である。 - ボードは少なくとも つの整数を含むことが保証される。
出力
ボードに残る可能性のある整数のうち最大のものを 行で出力せよ。
最後は改行し、余計な文字、空行を含まないこと。
入力例1
2 3
12.
.5.
出力例1
8
入力例2
5 5
..3.9
.1..6
2.3.4
7..11
....8
出力例2
45