1. paizaラーニングトップ
  2. レベルアップ問題集
  3. 二次元DPメニュー(言語選択)
  4. 問題一覧 Swift編
  5. 二次元 dp 応用 1 Swift編

二次元DPメニューのサムネイル
二次元 dp 応用 1 Swift編(paizaランク A 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

N 個のマスが横 1 列に並べられています。
各マスの表と裏には数字が書かれており、左から i 番目のマスの表には整数 A_i、裏には整数 B_i が書かれています。
いまからあなたは各時刻 t = 1, 2, ... N + K - 1 に以下のいずれかの操作を選び、行動します。

・操作 1:右に 1 マス進む。
・操作 2:いまいるマスを裏返す。

ただし、時刻 N + K - 1 までに、操作 1 は N-1 回だけ、操作 2 は K 回だけ行う必要があります。
同じマスで複数回操作 2 を行ってもよいです。
時刻 t = 0.5, 1.5, 2.5, ... , N + K - 1 + 0.5 では、いまいるマスの表に書かれている整数だけポイントが加算されます。
最初時刻 t = 0 にあなたはマス 1 にいます。
適切に行動したとき、時刻 N + K までに得られるポイントの合計の最大値を求めてください。

入力例 1 では、例えば以下のように行動できます。
・時刻 t = 0.5 では、マス 1 におり表の数字は 1 であるため 1 ポイント獲得する。
・時刻 t = 1 では、操作 1 を選びマス 2 に移動する。
・時刻 t = 1.5 では、マス 2 におり表の数字は 2 であるため 2 ポイント獲得する。
・時刻 t = 2 では、操作 2 を選びマス 2 を裏返す。この操作により、マス 2 の表に書かれた数字は 5、裏に書かれた数字は 2 になる。
・時刻 t = 2.5 では、マス 2 におり表の数字は 5 であるため 5 ポイント獲得する。
・時刻 t = 3 では、操作 1 を選びます 3 に移動する。
・時刻 t = 3.5 では、マス 3 におり表の数字は 3 であるため 3 ポイント獲得する。
・時刻 t = 4 では、操作 2 を選びマス 3 を裏返す。この操作により、マス 3 の表に書かれた数字は 4、裏に書かれた数字は 3 になる。
・時刻 t = 4.5 では、マス 3 におり表の数字は 4 であるため 4 ポイント獲得する。
この行動では操作 1 を 2 回、操作 2 を 2 回行っており、時刻 5 までに 15 ポイント獲得することができました。
どのように行動しても時刻 5 までに 16 ポイント以上獲得することはできないので、15 を出力します。

入力される値

入力は以下のフォーマットで与えられます。

N K
A_1 A_2 ... A_N
B_1 B_2 ... B_N


・1 行目には、数列の長さを表す整数 N、部分列の要素の差の絶対値の最大値 K が与えられます。
・2 行目には、カードの表に書かれた整数を表す数列 A の各要素が空白区切りで与えられます。
・3 行目には、カードの裏に書かれた整数を表す数列 B の各要素が空白区切りで与えられます。
・入力は合計で 3 行からなり、入力値最終行の末尾に改行が 1 つ入ります。


入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
期待する出力

適切に行動したとき、時刻 N + K までに得られるポイントの合計の最大値を求めてください。
最後は改行し、余計な文字、空行を含んではいけません。

条件

すべてのテストケースにおいて、以下の条件をみたします。

・1 ≦ N ≦ 1000
・1 ≦ K ≦ 100
・1 ≦ A_i ≦ 10^9
・1 ≦ B_i ≦ 10^9

入力例1

3 2
1 2 3
2 5 4

出力例1

15

入力例2

15 10
96303383 329732250 315726570 842741290 338770743 636771143 717118819 524995657 831468044 106432783 330049923 45919349 989459912 126523071 149364144
553828059 858443213 130426604 277873755 273387818 908051434 594793267 817434664 520282602 136469689 995483331 421851726 104910711 925348416 968163225

出力例2

14943946518

問題一覧へ戻る

ページの先頭へ戻る