問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
(この問題は、次の問題と全く同じ問題ですが、正誤判定に用いられる基準値が異なります。この問題では、基準値が低く設定されています。)
縦に H マス、横に W マスの長さの二次元グリッドが与えられます。 それぞれのセルには、正負両方の値をとる整数が与えられます。
このグリッドから連結したセルの集合を選んだ時、その集合のスコアを、セルに書かれた整数の和と定義します。 ただし、セルの集合が連結であるとは、セル集合内のある一つのセルから、上下左右に繋がっている集合内のセルを辿ることで、集合内の全てのセルを辿れることを指します。 例えば、下の図では、黒いセルの集合は、左の 2 つの例では連結であり、右の 2 つの例では連結ではありません。
あなたは、適切な連結したセルの集合を選ぶことによって、スコアを最大化しようと考えました。 適切なセルを選択することによって、スコアを可能な限り最大化してください。
なおこの問題には、基準となるスコアが設定されています。あなたが選択したセルの集合のスコアが、その基準値以上だった場合に正解となります。
例えば、下の画像は、それぞれの場合におけるスコアを示します。
H W
g_{1, 1} g_{1, 2} ... g_{1, W}
g_{2, 1} g_{2, 2} ... g_{2, W}
...
g_{H, 1} g_{H, 2} ... g_{H, W}
・期待する出力は H 行になります。
・それぞれの行の出力は長さ W の 0 または 1 からなる文字列になります。
・i 行目 j 列目 (1 ≦ i ≦ H, 1 ≦ j ≦ W) を連結成分に含める場合は 1 を、含めない場合は 0 を出力してください。
・末尾に改行を入れ、余計な文字、空行を含んではいけません。
全てのテストケースにおいて, 以下の条件を満たします。
・H = 30, W = 30 (入力例のみ H, W < 30)
・-1,000 ≦ g_{i, j} ≦ 1,000
3 3
1 2 3
4 5 6
7 8 9
111
111
111