#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

bool lt6(int n) {
    return n < 6;
}

int square(int n) {
    return n * n;
}

void printv(const vector<int> &v) {
    cout << "vector:";
    for (int i = 0; i < v.size(); i++) {
        cout << ' ' << v[i];
    }
    cout << endl;
}

int main() {
    vector<int> v;
    v.push_back(5);
    v.push_back(2);
    v.push_back(7);
    v.push_back(9);
    v.push_back(3);
    printv(v);
    sort(v.begin(), v.end());
    printv(v);
    cout << count_if(v.begin(), v.end(), lt6) << endl;
    transform(v.begin(), v.end(), v.begin(), square);
    printv(v);
    reverse(v.begin(), v.end());
    printv(v);
    cout << *min_element(v.begin(), v.end()) << ' '
         << *max_element(v.begin(), v.end()) << endl;
}
