Тринадцать задач, которые sort решает почти сам. Следите за размерами:
несколько задач доходят до 2·10⁶ чисел, поэтому не убирайте строки быстрого
ввода-вывода, читайте в vector<long long> там, где значения достигают 10¹⁸, и
печатайте через "\n" или ' ', а не endl.
- «Increasing Order» и «Decreasing Order»:
sortиsortсgreater<long long>(). - «Alphabetize»: строка до 5·10⁶ букв — сортируйте саму строку.
- «Median» и «The k-th Smallest»: сортировка и один индекс. Вычислите индекс на примере, прежде чем писать код.
- «Sort Substrings»: вырежьте
s.substr(l - 1, r - l + 1), отсортируйте кусок, напечатайте. Суммарная длина всех кусков ограничена, так что это достаточно быстро. - «Merge Two Sorted Lists»: сложить всё в один вектор и отсортировать — даёт нужную последовательность; правило «сначала из первого массива» важно только для равных значений, а они печатаются одинаково.
- «Отсортированные индексы» и «Sort and Remember»: приём с шеренгой — пары
{значение, индекс}. - «Lexicographic Points»: пары
{x, y}и обычныйsort. В «Order by Height» главный — y: читайте каждую точку в{y, x}и печатайте обратно какx y. - «Турнирная таблица забега» и «Рейтинг участников»: большее значение первым.
{-расстояние, id}сsortили пары{балл, имя}, отсортированные сgreater<pair<int, string>>()(имена не сравниваются, когда баллы различны, а здесь они различны).