問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
図書館の蔵書管理システムを開発しています。蔵書はすべて管理番号順に昇順に並べられており、N 冊分の管理番号が整数列 A_1, A_2, ..., A_N として、司書が調べたい管理番号が整数 X として与えられます。X は必ず A の中に存在します。
管理番号 X の本が書架の何番目にあるかを調べるため、X が A の中で最初に現れる位置(先頭を 1 番目とする)を二分探索で求め、出力してください。
入力は以下のフォーマットで与えられます。
N X
A_1 A_2 ... A_N
管理番号 X が A の中で最初に現れる位置(先頭を 1 番目とする)を 1 行に出力してください。出力の最後は改行し、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
・1 ≦ N ≦ 10000
・1 ≦ A_i ≦ 1000000000
・1 ≦ X ≦ 1000000000
・A は昇順に並んでいる(A_1 ≦ A_2 ≦ ... ≦ A_N)
・X は必ず A の中に存在する
5 5
1 3 5 5 7
3
8 10
2 4 6 8 10 10 12 14
5