#include <iostream>
#include <cstring>
const int SIZE = 5;
template <typename T>
T maxn(T tab[], int rozmiar )
{
T x = tab[0];
for(int i = 1; i < rozmiar ; i++)
if(tab[i] > x)
x = tab[i];
return x;
}
template <> const char* maxn(const char* tab[], int rozmiar)
{
unsigned len = 0;
int j = 0;
for(int i = 0; i < rozmiar; i++)
if(len < strlen(tab[i])) {
len = strlen(tab[i]);
j = i;
}
return tab[j];
}
int main(void)
{
int tab1[10] = {1, 5, 2, 7, 0, 5, 8 ,94, 158, 147};
double tab2[6] = {100, 98.5, 14.5, 4, 9, 454.987};
const char* tab3[7] = {"ala", "ma", "kota", "oraz", "dwie", "dzikie", "dwujednorożce"};
int a;
double b;
char * ch, * wsk;
a = maxn(tab1, 10);
b = maxn(tab2, 6);
ch = (char*)maxn(tab3, 7);
std::cout << a << " " << b << std::endl;
std::cout << ch << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KIApjb25zdCBpbnQgU0laRSA9IDU7CiAKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+ClQgbWF4bihUIHRhYltdLCBpbnQgcm96bWlhciApCnsKICAgIFQgeCA9IHRhYlswXTsKICAgIGZvcihpbnQgaSA9IDE7IGkgPCByb3ptaWFyIDsgaSsrKQogICAgICAgIGlmKHRhYltpXSA+IHgpCiAgICAgICAgICAgIHggPSB0YWJbaV07CiAKICAgIHJldHVybiB4Owp9CnRlbXBsYXRlIDw+IGNvbnN0IGNoYXIqIG1heG4oY29uc3QgY2hhciogdGFiW10sIGludCByb3ptaWFyKSAKewogIHVuc2lnbmVkIGxlbiA9IDA7CiAgaW50IGogPSAwOwogIGZvcihpbnQgaSA9IDA7IGkgPCByb3ptaWFyOyBpKyspCiAgICBpZihsZW4gPCBzdHJsZW4odGFiW2ldKSkgewogICAgICBsZW4gPSBzdHJsZW4odGFiW2ldKTsKICAgICAgaiA9IGk7CiAgICB9CiAgICByZXR1cm4gdGFiW2pdOwp9CiAKaW50IG1haW4odm9pZCkKewogICAgaW50IHRhYjFbMTBdID0gezEsIDUsIDIsIDcsIDAsIDUsIDggLDk0LCAxNTgsIDE0N307CiAgICBkb3VibGUgdGFiMls2XSA9IHsxMDAsIDk4LjUsIDE0LjUsIDQsIDksIDQ1NC45ODd9OwogICAgY29uc3QgY2hhciogdGFiM1s3XSA9IHsiYWxhIiwgIm1hIiwgImtvdGEiLCAib3JheiIsICJkd2llIiwgImR6aWtpZSIsICJkd3VqZWRub3JvxbxjZSJ9OwogICAgaW50IGE7CiAgICBkb3VibGUgYjsKICAgIGNoYXIgKiBjaCwgKiB3c2s7CiAKICAgIGEgPSBtYXhuKHRhYjEsIDEwKTsKICAgIGIgPSBtYXhuKHRhYjIsIDYpOwogICAgY2ggPSAoY2hhciopbWF4bih0YWIzLCA3KTsKIAogICAgc3RkOjpjb3V0IDw8IGEgPDwgIiAgICAiIDw8IGIgPDwgc3RkOjplbmRsOwogICAgc3RkOjpjb3V0IDw8IGNoIDw8IHN0ZDo6ZW5kbDsKIAogICAgcmV0dXJuIDA7ICAgIAp9