#include <iostream>
#include <stack>
#include <vector>
#include <algorithm>
template <typename T>
void print_stack(std::stack<T> st)
{
while (!st.empty())
{
std::cout<<st.top()<<" ";
st.pop();
}
std::cout<<std::endl;
}
template <typename T>
std::pair<const T, const T> minmax_elem(std::stack<T> st)
{
std::vector<T> v;
while (!st.empty())
{
v.push_back(st.top());
st.pop();
}
auto min_max = std::minmax_element(v.begin(), v.end());
return std::make_pair(*min_max.first, *min_max.second);
}
int main()
{
std::stack<int> stck{std::stack<int>::container_type{10,2,33,4,8,14,2,0,9,14,3}};
print_stack(stck);
auto min_max = minmax_elem<int>(stck);
std::cout<<"min: "<<min_max.first<<"\nmax: "<<min_max.second<<'\n';
std::cout<<'\n';
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RhY2s+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiAKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnZvaWQgcHJpbnRfc3RhY2soc3RkOjpzdGFjazxUPiBzdCkKewogICB3aGlsZSAoIXN0LmVtcHR5KCkpCiAgIHsKICAgICAgc3RkOjpjb3V0PDxzdC50b3AoKTw8IiAiOwogICAgICBzdC5wb3AoKTsKICAgfQogICBzdGQ6OmNvdXQ8PHN0ZDo6ZW5kbDsKfQogCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgpzdGQ6OnBhaXI8Y29uc3QgVCwgY29uc3QgVD4gbWlubWF4X2VsZW0oc3RkOjpzdGFjazxUPiBzdCkKewogICBzdGQ6OnZlY3RvcjxUPiB2OwogICAKICAgd2hpbGUgKCFzdC5lbXB0eSgpKQogICB7CiAgICAgIHYucHVzaF9iYWNrKHN0LnRvcCgpKTsKICAgICAgc3QucG9wKCk7CiAgIH0KICAgYXV0byBtaW5fbWF4ID0gc3RkOjptaW5tYXhfZWxlbWVudCh2LmJlZ2luKCksIHYuZW5kKCkpOwogICByZXR1cm4gc3RkOjptYWtlX3BhaXIoKm1pbl9tYXguZmlyc3QsICptaW5fbWF4LnNlY29uZCk7Cn0KIAppbnQgbWFpbigpCnsKICAgc3RkOjpzdGFjazxpbnQ+IHN0Y2t7c3RkOjpzdGFjazxpbnQ+Ojpjb250YWluZXJfdHlwZXsxMCwyLDMzLDQsOCwxNCwyLDAsOSwxNCwzfX07CiAgIHByaW50X3N0YWNrKHN0Y2spOwogICAKICAgYXV0byBtaW5fbWF4ID0gbWlubWF4X2VsZW08aW50PihzdGNrKTsKICAgc3RkOjpjb3V0PDwibWluOiAiPDxtaW5fbWF4LmZpcnN0PDwiXG5tYXg6ICI8PG1pbl9tYXguc2Vjb25kPDwnXG4nOwogCiAgIHN0ZDo6Y291dDw8J1xuJzsKICAgcmV0dXJuIDA7Cn0=