#include <iostream>
#include <functional>
#include <vector>
#include <limits>
#include <algorithm>
using namespace std;
using MyFunc = std::function<int()>;
int f1() { return 1; }
int f2() { return 15;}
int f3() { return 3; }
int main() {
std::vector<MyFunc> my_functions{f1, f2, f3};
std::vector<int> my_results;
my_results.reserve(my_functions.size());
for (auto const &f : my_functions) {
my_results.push_back(f());
}
auto max_it = std::max_element(std::begin(my_results), std::end(my_results));
cout << *max_it << endl;
int max = std::numeric_limits<int>::min();
for (auto &f : my_functions) {
max = std::max(max, f());
}
cout << max << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGxpbWl0cz4KI2luY2x1ZGUgPGFsZ29yaXRobT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1c2luZyBNeUZ1bmMgPSBzdGQ6OmZ1bmN0aW9uPGludCgpPjsKCmludCBmMSgpIHsgcmV0dXJuIDE7IH0KaW50IGYyKCkgeyByZXR1cm4gMTU7fQppbnQgZjMoKSB7IHJldHVybiAzOyB9CgppbnQgbWFpbigpIHsKCXN0ZDo6dmVjdG9yPE15RnVuYz4gbXlfZnVuY3Rpb25ze2YxLCBmMiwgZjN9OwoJc3RkOjp2ZWN0b3I8aW50PiBteV9yZXN1bHRzOwoJbXlfcmVzdWx0cy5yZXNlcnZlKG15X2Z1bmN0aW9ucy5zaXplKCkpOwoJCglmb3IgKGF1dG8gY29uc3QgJmYgOiBteV9mdW5jdGlvbnMpIHsKCQlteV9yZXN1bHRzLnB1c2hfYmFjayhmKCkpOwoJfQoJYXV0byBtYXhfaXQgPSBzdGQ6Om1heF9lbGVtZW50KHN0ZDo6YmVnaW4obXlfcmVzdWx0cyksIHN0ZDo6ZW5kKG15X3Jlc3VsdHMpKTsKCWNvdXQgPDwgKm1heF9pdCA8PCBlbmRsOwoJCglpbnQgbWF4ID0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjptaW4oKTsKCQoJZm9yIChhdXRvICZmIDogbXlfZnVuY3Rpb25zKSB7CgkJbWF4ID0gc3RkOjptYXgobWF4LCBmKCkpOwoJfQoJCgljb3V0IDw8IG1heCA8PCBlbmRsOwoJCglyZXR1cm4gMDsKfQ==