#include <algorithm>
#include <iostream>
#include <vector>
int
main()
{
int
unsorted[10] = { 3, 3, 2, 1, 5, 5, 4, 3, 7, 8 };
std::vector<
int
> v(unsorted, unsorted + 10);
std::sort(v.begin(), v.end(), std::greater<
int
>());
std::vector<
int
>::iterator low, up;
low = std::lower_bound(v.begin(), v.end(), 3, std::greater<
int
>());
up = std::upper_bound(v.begin(), v.end(), 5, std::greater<
int
>());
std::cout <<
"lower_bound at position "
<< (low - v.begin()) <<
'\n'
;
std::cout <<
"upper_bound at position "
<< (up - v.begin()) <<
'\n'
;
return
0;
}