12/24 競プロ典型007

ある値に対して、別の配列の中から一番差が小さい値を探す

 

二分探索だなぁとはすぐ思いついた

今回は配列がソートされていないので、自分でソートする必要あり

lower_boundで値が入るインデックスを探し、左と右の値それぞれと差を計算して、小さい方が差の最小値

左端と右端の場合は、差が片方しか計算出来ないので、場合分けする必要あり

 

なんか二分探索で引っかかってしまってプログラムが組めなかった

あとINFの値が小さすぎた

簡単な方の問題なはず

 

sort(A.begin(),A.end());Aの配列を昇順でソート

pos1=lower_bound(A.begin(),A.end(),B);配列Aの中に値Bを挿入する場合に昇順を壊さないような位置(インデックス)のイテレータを返す

先頭からの距離にしたい場合は、pos1-A.begin()にする必要あり(よくわからない)