>>19
自分のソースを修正しました。感謝。

>>20
>lower_bound(k)は、k以上の最初の要素を指す。

lower_boundの定義がこの通りだとしたら、今の処理が上手くいかないのは確かに納得です。
もしかして>>15のサイトの説明が間違っていると?
間違っているとしたら、 『 k より小さな( 又は、k以下の ) 最後の要素を指す 』 という関数は何でしょうか?

>>21
forの前に itr2 = i.lower_bound( b ) と代入して、forを高速化しました。感謝。