#include <iostream>
#include <cstring>
template <typename T>
void maxn(T * arr, unsigned int n)
{
T highest = arr[0];
for (unsigned int i = 1; i < n; ++i)
{
if (highest < arr[i])
highest = arr[i];
}
std::cout << std::endl << highest;
}
template<>
void maxn<char*>(char **array, unsigned int n)
{
char *p = array[0];
for (unsigned int i = 1; i < n; ++i)
{
if (strlen(p) < strlen(array[i]))
p = array[i];
}
std::cout << std::endl << "Line: " << p << " & Length: " << strlen(p);
}
int main()
{
int arr_int[] = {3, 8, 0 ,9};
maxn(arr_int, 4);
double arr_double[] = {2.56, 0, 1, 3.567, 41.7, 7.87};
maxn(arr_double, 6);
char *p[] = {
".....................",
".................................",
".............",
"**********************",
"^^^^^^^^^^^^^^^^^^^^^^^^^^^^"
};
maxn(p, 5);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgp2b2lkIG1heG4oVCAqIGFyciwgdW5zaWduZWQgaW50IG4pCnsKICAgIFQgaGlnaGVzdCA9IGFyclswXTsKCiAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMTsgaSA8IG47ICsraSkKICAgIHsKICAgICAgICBpZiAoaGlnaGVzdCA8IGFycltpXSkKICAgICAgICAgICAgaGlnaGVzdCA9IGFycltpXTsKICAgIH0KCiAgICBzdGQ6OmNvdXQgPDwgc3RkOjplbmRsIDw8IGhpZ2hlc3Q7Cn0KCgp0ZW1wbGF0ZTw+CnZvaWQgbWF4bjxjaGFyKj4oY2hhciAqKmFycmF5LCB1bnNpZ25lZCBpbnQgbikKewogICAgY2hhciAqcCA9IGFycmF5WzBdOwoKICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAxOyBpIDwgbjsgKytpKQogICAgewogICAgICAgIGlmIChzdHJsZW4ocCkgPCBzdHJsZW4oYXJyYXlbaV0pKQogICAgICAgICAgICBwID0gYXJyYXlbaV07CiAgICB9CgogICAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbCA8PCAiTGluZTogIiA8PCBwIDw8ICIgJiBMZW5ndGg6ICIgPDwgc3RybGVuKHApOwp9CgppbnQgbWFpbigpCnsKICAgIGludCBhcnJfaW50W10gPSB7MywgOCwgMCAsOX07CiAgICBtYXhuKGFycl9pbnQsIDQpOwoKICAgIGRvdWJsZSBhcnJfZG91YmxlW10gPSB7Mi41NiwgMCwgMSwgMy41NjcsIDQxLjcsIDcuODd9OwogICAgbWF4bihhcnJfZG91YmxlLCA2KTsKCiAgICBjaGFyICpwW10gPSB7CiAgICAgICAgICAgICAgICAgICAgIi4uLi4uLi4uLi4uLi4uLi4uLi4uLiIsCiAgICAgICAgICAgICAgICAgICAgIi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiIsCiAgICAgICAgICAgICAgICAgICAgIi4uLi4uLi4uLi4uLi4iLAogICAgICAgICAgICAgICAgICAgICIqKioqKioqKioqKioqKioqKioqKioqIiwKICAgICAgICAgICAgICAgICAgICAiXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXiIKICAgICAgICAgICAgICAgICB9OwogICAgbWF4bihwLCA1KTsKCiAgICByZXR1cm4gMDsKfQoK