D - おいしいたこ焼きの焼き方
Editorial
高橋君のたこ焼き屋で使っているたこ焼き器は焼く場所によって美味しさの変わるクセの強いたこ焼き器です。
また、店員の力量によって一度に焼けるたこ焼きの数が違います。
高橋君はそれぞれの店員ができるだけ美味しくたこ焼きを焼けるようにしようと思いました。
たこ焼き器はの正方形をしています。
それぞれの場所ごとにたこ焼きの美味しさが決まっています。
それぞれの店員は一度に焼けるたこ焼きの上限が決まっています。
また、一度に焼くたこ焼きは必ずたこ焼き器の長方形の部分になっていて、その中の全てを使わなければなりません。
それぞれの店員について一度に焼けるたこ焼きの美味しさの合計の最大値を求めて下さい。
ただし、店員が焼き始める時はたこ焼き器が完全に空いていてどの場所でも使えるとします。
入力は以下の形式で標準入力から与えられる。
それぞれの店員について一度に焼けるたこ焼きの美味しさの合計の最大値を出力して下さい。
また、出力の末尾には改行を入れて下さい。
Time Limit: 5 sec / Memory Limit: 256 MB
問題文
また、店員の力量によって一度に焼けるたこ焼きの数が違います。
高橋君はそれぞれの店員ができるだけ美味しくたこ焼きを焼けるようにしようと思いました。
たこ焼き器はの正方形をしています。
それぞれの場所ごとにたこ焼きの美味しさが決まっています。
それぞれの店員は一度に焼けるたこ焼きの上限が決まっています。
また、一度に焼くたこ焼きは必ずたこ焼き器の長方形の部分になっていて、その中の全てを使わなければなりません。
それぞれの店員について一度に焼けるたこ焼きの美味しさの合計の最大値を求めて下さい。
ただし、店員が焼き始める時はたこ焼き器が完全に空いていてどの場所でも使えるとします。
入力
... ... ...
- 1行目にたこ焼き器の一辺の大きさを表す整数が与えられます。
- 続く行にたこ焼き器のそれぞれの場所で焼けるたこ焼きの美味しさを表す整数が与えられます。
- 次の行に店員の人数を表す整数()が与えられます。
- 続く行にそれぞれの店員が焼けるたこ焼きの数を表す整数が与えられます。
出力
また、出力の末尾には改行を入れて下さい。
部分点
を満たすテストケース全てに正解すると、点満点のうち 点が与えられる。
入力例 1
3 3 2 1 2 2 1 1 1 1 3 1 4 9
出力例 1
3 9 14
- 1人目の店員は左上でたこ焼きを焼くと美味しさの合計がになります。
- 2人目の店員は左上の2×2の範囲でたこ焼きを焼くと美味しさの合計がになります。
- 3人目の店員はたこ焼き器全てを使えるので美味しさの合計がになります。
入力例 2
3 1 1 1 1 1 1 9 9 9 1 4
出力例 2
27
- 一番下の列の範囲1×3でたこ焼きを焼くと美味しさの合計がになります。
- この店員はたこ焼きを4個焼くことができますが、3個しか焼かないほうが美味しさの合計が大きくなります。