問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
N 席の座席があり、i 番目の席の値段は A_i 円です。値段は昇順に並んでいます(A_1 ≦ A_2 ≦ ... ≦ A_N)。所持金 X 円で払える席のうち、最も高い席の番号(先頭を 1 番目とする)を二分探索で求め、出力してください。払える席がない場合は -1 を出力してください。
ここで「払える」とは、その席の値段が所持金以下であることを意味します(A_i ≦ X)。値段は昇順に並んでいるので、払える席は前の方に固まっており、その中で最も高い(最も番号の大きい)席を探すことになります。
入力は以下のフォーマットで与えられます。
N X
A_1 A_2 ... A_N
払える席のうち最も高い席の番号(先頭を 1 番目とする)を 1 行に出力してください。払える席がない場合は -1 を出力してください。出力の最後は改行し、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
・1 ≦ N ≦ 10000
・1 ≦ A_i ≦ 1000000000
・1 ≦ X ≦ 1000000000
・A は昇順に並んでいる(A_1 ≦ A_2 ≦ ... ≦ A_N)
5 3000
1000 2000 3000 4000 5000
3
3 500
1000 2000 3000
-1