#include <iostream>
#include <vector>
using namespace std;
class MaxMin {
private:
vector<int> vec;
int max;
int min;
public:
void init();
void traverse();
void maxMin();
int getMax();
int getMin();
};
int MaxMin::getMax() {
return max;
}
int MaxMin::getMin() {
return min;
}
void MaxMin::maxMin() {
if (!vec.empty()) {
vector<int>::iterator iter = vec.begin();
if (vec.size() % 2 == 0) {
if (*iter <= *(iter+1)) {
min = *iter;
max = *(iter+1);
} else {
min = *(iter+1);
max = *iter;
}
iter += 2;
} else {
max = min = *iter;
iter += 1;
}
for (; iter != vec.end() && iter+1 != vec.end(); iter+=2) {
if (*iter <= *(iter+1)) {
if (*iter < min) {
min = *iter;
}
if (*(iter+1) > max) {
max = *(iter+1);
}
} else {
if (*(iter+1) < min) {
min = *(iter+1);
}
if (*iter > max) {
max = *iter;
}
}
}
}
}
void MaxMin::init() {
std::cout << "how many elements do you want to enter:";
int count;
std::cin >> count;
int element;
for (int i = 0; i < count; i++) {
std::cin >> element;
vec.push_back(element);
}
}
void MaxMin::traverse() {
for (vector<int>::iterator iter = vec.begin(); iter != vec.end(); iter++) {
std::cout << *iter << " ";
}
std::cout << std::endl;
}
int main() {
MaxMin *mm = new MaxMin();
mm->init();
mm->maxMin();
mm->traverse();
std::cout << "max: " << mm->getMax() << ";min: " << mm->getMin() << std::endl;
delete mm;
return 0;
}