問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
フリマアプリで、ある商品カテゴリーの出品一覧を検索する機能を作っています。このカテゴリーには N 件の出品があり、i 番目の出品の価格は A_i 円です。価格は安い順(昇順)に並んでいます(A_1 ≦ A_2 ≦ ... ≦ A_N)。
ユーザーが「X 円以上の出品だけを見たい」と価格の下限を指定して検索したとき、検索結果の先頭に表示されるのは、価格が X 円以上になる最初の出品です。A_i ≧ X を満たす最小の i(先頭を 1 番目とする)を二分探索で求め、出力してください。そのような i が存在しない場合(A のすべての要素が X より小さい場合)は N + 1 を出力してください。
入力は以下のフォーマットで与えられます。
N X
A_1 A_2 ... A_N
A_i ≧ X を満たす最小の i(先頭を 1 番目とする)を 1 行に出力してください。そのような i が存在しない場合は N + 1 を出力してください。出力の最後は改行し、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
・1 ≦ N ≦ 10000
・1 ≦ A_i ≦ 1000000000
・1 ≦ X ≦ 1000000000
・A は昇順に並んでいる(A_1 ≦ A_2 ≦ ... ≦ A_N)
5 800
300 600 900 1200 1500
3
3 1000
100 200 300
4