#include <iostream>
#include <vector>
template <typename T>
T my_max(const T &begin, const T &end) {
T result = begin, it = begin;
while (++it, it != end) {
if (*it > *result) {
result = it;
}
}
return result;
}
int main() {
int array[] = {1,3,5,1,2,7,6,5};
std::cout << *my_max(&array[0], &array[9]) << std::endl;
std::vector<int> vector;
vector.push_back(0);
vector.push_back(3);
vector.push_back(8);
vector.push_back(2);
vector.push_back(1);
vector.push_back(6);
std::cout << *my_max(vector.begin(), vector.end()) << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+ClQgbXlfbWF4KGNvbnN0IFQgJmJlZ2luLCBjb25zdCBUICZlbmQpIHsKCVQgcmVzdWx0ID0gYmVnaW4sIGl0ID0gYmVnaW47Cgl3aGlsZSAoKytpdCwgaXQgIT0gZW5kKSB7CgkJaWYgKCppdCA+ICpyZXN1bHQpIHsKCQkJcmVzdWx0ID0gaXQ7CgkJfQoJfQoJcmV0dXJuIHJlc3VsdDsKfQoKaW50IG1haW4oKSB7CglpbnQgYXJyYXlbXSA9IHsxLDMsNSwxLDIsNyw2LDV9OwoJc3RkOjpjb3V0IDw8ICpteV9tYXgoJmFycmF5WzBdLCAmYXJyYXlbOV0pIDw8IHN0ZDo6ZW5kbDsKCXN0ZDo6dmVjdG9yPGludD4gdmVjdG9yOwoJdmVjdG9yLnB1c2hfYmFjaygwKTsKCXZlY3Rvci5wdXNoX2JhY2soMyk7Cgl2ZWN0b3IucHVzaF9iYWNrKDgpOwoJdmVjdG9yLnB1c2hfYmFjaygyKTsKCXZlY3Rvci5wdXNoX2JhY2soMSk7Cgl2ZWN0b3IucHVzaF9iYWNrKDYpOwoJc3RkOjpjb3V0IDw8ICpteV9tYXgodmVjdG9yLmJlZ2luKCksIHZlY3Rvci5lbmQoKSkgPDwgc3RkOjplbmRsOwoJcmV0dXJuIDA7Cn0=