#discovery2016finalb. [discovery_2016_final_b]DDPC特別ビュッフェⅡ

[discovery_2016_final_b]DDPC特別ビュッフェⅡ

問題文

DISCO presents ディスカバリーチャンネルプログラミングコンテスト 2016本戦のDDPC特別ビュッフェの時間が始まりました。あなたはこれから料理の載っていないトレーに料理を載せに行くところです。 DDPC特別ビュッフェには NN 種類の料理があります。 ii 種類目の料理はビュッフェの開始から TiT_i 秒後になくなり、料理の美味しさは AiA_i です。

DDPC特別ビュッフェにはいくつかの特別なルールがあります。

  • あなたは 11 種類の料理をトレーに載せるのに 11 秒かけなくてはならない。すなわち料理を載せ始めた時刻が ss であったとき、料理を載せ終わったときの時刻は s+1s+1 となる。
  • あなたは以前にトレーに載せた料理と同じ種類の料理を載せてはならない。
  • 現在の時刻 sss+1Tis+1≦T_i を満たさないとき、種類 ii の料理をトレーに載せることはできない。

あなたはトレーに載っている料理の美味しさの総和が XX 以上になったところで席に戻ることにしました。トレーに載っている料理の美味しさの総和を XX 以上にすることが可能な最小の時刻 tt を求めてください。


入力

入力は以下の形式で標準入力から与えられる。

NN XX T1T_1 T2T_2TNT_N A1A_1 A2A_2ANA_N

  • 11 行目にDDPC特別ビュッフェに存在する料理の種類数を表す整数 N(1N105)N(1≦N≦10^{5}) とトレーに載っている料理の美味しさの総和の目標値 X(1X109)X(1≦X≦10^{9}) が空白区切りで与えられる。
  • 22 行目にDDPC特別ビュッフェに存在する料理の ii 種類目の料理がなくなる時刻 Ti(1Ti105)T_i (1≦T_i≦10^{5}) が空白区切りで与えられる。
  • 33 行目にDDPC特別ビュッフェに存在する料理の ii 種類目の料理の美味しさを表す整数 Ai(1Ai105)A_i (1≦A_i≦10^{5}) が空白区切りで与えられる。

出力

トレーに載っている料理の美味しさの総和を XX 以上にすることが可能な最小の時刻 tt11 行に出力せよ。不可能な場合は-1を出力せよ。末尾に改行を忘れないこと。

部分点

この問題には部分点が設定されている。

  • Ti<TjT_i<T_j のとき、AiAjA_i≧A_j を満たすようなデータセットに正解した場合 1010 点が与えられる。
  • 追加制約のないデータセットに正解した場合さらに 4040 点が得られ合計 5050 点が得られる。

入力例 1

4 5
1 2 3 4
3 3 1 1

出力例 1

2
  • 以下のような料理の取り方をすることで、時刻 22 にトレーに載っている料理の美味しさの総和が 55 以上にすることが可能です。
  • 00 秒目の時点でトレーに載っている料理の美味しさの総和は 00 です。種類 11 の料理をトレーに載せます。
  • 11 秒目の時点でトレーに載っている料理の美味しさの総和は 33 です。種類 22 の料理をトレーに載せます。
  • 22 秒目の時点でトレーに載っている料理の美味しさの総和は 66 です。
  • このケースは部分点の追加制約を満たします。

入力例 2

3 10
1 2 3
3 3 4

出力例 2

3
  • 以下のような料理の取り方をすることで、時刻 33 にトレーに載っている料理の美味しさの総和が 1010 以上にすることが可能です。
  • 00 秒目の時点でトレーに載っている料理の美味しさの総和は 00 です。種類 11 の料理をトレーに載せます。
  • 11 秒目の時点でトレーに載っている料理の美味しさの総和は 33 です。種類 22 の料理をトレーに載せます。
  • 22 秒目の時点でトレーに載っている料理の美味しさの総和は 66 です。種類 33 の料理をトレーに載せます。
  • 33 秒目の時点でトレーに載っている料理の美味しさの総和は 1010 です。
  • このケースは部分点の追加制約を満たしません。

入力例 3

3 5
9 9 4
2 2 6

出力例 3

1
  • 以下のような料理の取り方をすることで、時刻 11 にトレーに載っている料理の美味しさの総和が 55 以上にすることが可能です。
  • 00 秒目の時点でトレーに載っている料理の美味しさの総和は 00 です。種類 33 の料理をトレーに載せます。
  • 11 秒目の時点でトレーに載っている料理の美味しさの総和は 66 です。
  • このケースは部分点の追加制約を満たします。

入力例 4

5 101
1 2 3 4 5
20 20 20 20 20

出力例 4

-1
  • どのように料理をとっても、トレーに載っている料理の美味しさの総和を 101101 以上にすることはできません。
  • このケースは部分点の追加制約を満たします。

入力例 5

2 2
1 1
1 1

出力例 5

-1
  • 時刻 00 でどちらの料理をとっても、もう片方の料理が時刻 11 でなくなってしまうため、トレーに載っている料理の美味しさを 22 以上にすることはできません。
  • このケースは部分点の追加制約を満たします。

入力例 6

4 6
1 1 2 2
3 4 1 2

出力例 6

2
  • 以下のような料理の取り方をすることで、時刻 22 にトレーに載っている料理の美味しさの総和が 66 以上にすることが可能です。
  • 00 秒目の時点でトレーに載っている料理の美味しさの総和は 00 です。種類 22 の料理をトレーに載せます。
  • 11 秒目の時点でトレーに載っている料理の美味しさの総和は 44 です。種類 44 の料理をトレーに載せます。
  • 22 秒目の時点でトレーに載っている料理の美味しさの総和は 66 です。
  • このケースは部分点の追加制約を満たします。

入力例 7

3 4
1 2 2
1 2 2

出力例 7

2
  • 以下のような料理の取り方をすることで、時刻 22 にトレーに載っている料理の美味しさの総和が 44 以上にすることが可能です。
  • 00 秒目の時点でトレーに載っている料理の美味しさの総和は 00 です。種類 22 の料理をトレーに載せます。
  • 11 秒目の時点でトレーに載っている料理の美味しさの総和は 22 です。種類 33 の料理をトレーに載せます。
  • 22 秒目の時点でトレーに載っている料理の美味しさの総和は 44 です。
  • このケースは部分点の追加制約を満たしません。