#include <iostream>
#include <algorithm>
#include <vector>
double f(const std::vector<double> &arr, bool maxElem) {
using iterator = decltype(arr.begin());
auto me = maxElem ? &std::max_element<iterator> : &std::min_element<iterator>;
return *me(arr.begin(), arr.end());
}
int main() {
std::vector<double> v{1, 2, 0, 3, 1, 4, 42, 1, 2};
std::cout << f(v, true) << std::endl;
std::cout << f(v, false) << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8dmVjdG9yPgoKZG91YmxlIGYoY29uc3Qgc3RkOjp2ZWN0b3I8ZG91YmxlPiAmYXJyLCBib29sIG1heEVsZW0pIHsKICAgIHVzaW5nIGl0ZXJhdG9yID0gZGVjbHR5cGUoYXJyLmJlZ2luKCkpOwogICAgYXV0byBtZSA9IG1heEVsZW0gPyAmc3RkOjptYXhfZWxlbWVudDxpdGVyYXRvcj4gOiAmc3RkOjptaW5fZWxlbWVudDxpdGVyYXRvcj47CiAgICByZXR1cm4gKm1lKGFyci5iZWdpbigpLCBhcnIuZW5kKCkpOwp9CgppbnQgbWFpbigpIHsKICAgIHN0ZDo6dmVjdG9yPGRvdWJsZT4gdnsxLCAyLCAwLCAzLCAxLCA0LCA0MiwgMSwgMn07CiAgICBzdGQ6OmNvdXQgPDwgZih2LCB0cnVlKSA8PCBzdGQ6OmVuZGw7CiAgICBzdGQ6OmNvdXQgPDwgZih2LCBmYWxzZSkgPDwgc3RkOjplbmRsOwogICAgcmV0dXJuIDA7Cn0=