|
2020年12月14日
情報オリンピック日本委員会
|
JOI 市には 1 本の十分に長い道路がある.この道路は数直線とみなすことができ,各地点は 1 個の実数による座標で表される.また JOI 市にはこの道路に沿って N 個の施設が設置されており,座標の小さい順に 1 から N までの番号がつけられている.施設 i (1 ≦ i ≦ N) の位置は座標 Ai である.
JOI 市ではこれから施設の安全点検が行われる.施設 i には点検しなければならない項目が Bi 個ある.今,点検を行うことができる K 人の大工が集められた.安全点検の開始のとき,大工は全員が座標 0 にいる.点検が始まると,各大工は 1 分間で,次の 2 つの行動のどちらかをとることができる.
安全点検を終えるとき,すべての建物のすべての点検項目が,1 人以上の大工によって点検されていなければならない.
大工の人数と施設の情報が与えられるので,安全点検を終えるのに最短で何分かかるかを求めるプログラムを作成せよ.
入力は以下の形式で標準入力から与えられる.
N K
A1 A2 … AN
B1 B2 … BN
標準出力に,安全点検を終えるのに最短で何分かかるかを 1 行で出力せよ.
入力例 1
3 3
1 3 4
4 2 4
出力例 1
7
例えば,以下のように行動することで,7 分間で点検を終えることができる.ただし 3 人の大工に番号をつけて,それぞれ大工 1,2,3 と表す.
どのように行動しても 7 分未満で点検を終えることはできないので 7 を出力する.
入力例 2
6 1
1 4 5 6 11 15
12 5 9 8 10 4
出力例 2
63
この入力例は小課題 1,3 の制約を満たす.
入力例 3
6 2
1 4 5 6 11 15
12 5 9 8 10 4
出力例 3
35
この入力例は小課題 2,3 の制約を満たす.
入力例 4
6 5
1 4 5 6 11 15
12 5 9 8 10 4
出力例 4
19