Сортировка с компаратором

В курсе по векторам, было показано, что массив можно сортировать с помощью функции sort. Но эта функция по умолчанию сортирует по возрастанию.
Чтобы отсортировать массив в другом порядке нужно использовать так называемый компаратор, это функция которая сравнивая два объекта задает порядок сортировки.

Пример компаратора, сортирующая элементы массива по возрастанию:

bool cmp(int first, int second) {
    
    return first < second;
}

и его использование:

 sort(A.begin(), A.end(), cmp );

По условию задачи видно, что надо применить устойчивую (стабильную) сортировку, поэтому вместо sort надо применить stable_sort.

в качестве компаратора также можно указать функциональный объект, который можно создать перед вызовом функцией сортировки.
Например:
struct {
        bool operator()(int a, int b) const
        {   
            return a < b;
        }   
    } cmp;