Требования к заданию:
  1. Бинарный поиск. (1456)
    Даны n чисел в порядке невозрастания: a1 >= a2 >= … >= an. Для данного числа b найти его место в этом ряду — с сохранением упорядоченности. При этом, если b совпадает с ai, то b должен быть после ai.
  2. Левый и правый бинарный поиск. (111728)
    Даны n чисел в порядке неубывания: a1 <= a2 <= … <= an. Для числа b найти минимальный i и максимальный j такие, что b = ai и b = aj.
  3. Сортировка времени.
    Упорядочить по неубыванию n моментов времени, заданных в виде часы:минуты:секунды (по желанию — через пробел). Упорядоченные моменты вывести в том же виде, как на входе.
  4. Результаты олимпиады. (1446)
    Даны n пар чисел: идентификатор участника и его результат. Упорядочить их по невозрастанию результатов, а при равных результатах — по возрастанию идентификаторов.
  5. Такси.
    Есть n такси, каждое со своим тарифом (цена за километр), и n пассажиров, которым надо ехать в разные стороны на данные расстояния. Найти распределение пассажиров по такси с минимальной суммарной стоимостью. Желательно помимо суммарной стоимости вывести это распределение.
  6. Различные числа. (1418)
    Даны n чисел. Найти, сколько среди них различных.
  7. Пары с заданной суммой.
    Даны n чисел. Вывести те пары, сумма в которых равна данной. Каждое число может войти только в одну пару.
  8. Обратная перестановка.
    Дана перестановка чисел 1…n: a1 a2 … an (i -> ai). Вывести обратную к ней перестановку b1 … bn (j -> bj).
  9. Минимум в скользящем окне. (756)
    Даны n чисел {ai} и размер окна k. Вывести n-k+1 минимумов чисел {a1…ak}, {a2…ak+1}, …
  10. Восстановление порядка.
    Изначально были расположены в некотором порядке n различных чисел. Затем были составлены (n-1) пар ai,ai+1. Эти пары в случайном порядке подаются на вход. Надо выдать n чисел в исходном порядке.
  11. Анаграммы.
    Даны n слов. Найти среди них анаграммы: слова, состоящие из одного и того же набора букв. n может быть БОЛЬШИМ.
    Выбрать один из вариантов вывода:
    - самые "мощные" анаграммы из заданного количества букв
    - самые "мощные" независимо от длины
    - анаграммы из самого большого количества букв
  12. Выпуклая оболочка. (290)
    Даны n пар координат точек на плоскости. Вывести координаты вершин выпуклой оболочки этих точек. (Попробовать применить сортировку!)
  13. Аргументы программы.
    Агументы программы, кроме нулевого, упорядочить по неубыванию в смысле обычного сравнения строк и вывести их по одному на строку в виде: номер аргумента, пробел, значение аргумента.
  14. Сортировка строк.
    Ввести все поданные на вход программы строки (EOF — конец ввода). Вывести их упорядоченными по неубыванию в смысле обычного сравнения строк.
  15. Составление словаря текста.
    Ввести все поданные на вход программы строки (EOF — конец ввода). Выделить из них все слова (словом считать последовательность символов, внутри которой нет пробельных символов и знаков препинания). Вывести все различные слова упорядоченными по неубыванию (сравнивать без учёта регистра символов). В каждой строке вывода: сколько раз встречается слово, пробел, само слово. В конце вывести некоторую статистику: количество строк, слов, различных слов, средняя длина слова (и что-нибудь ещё по вкусу).
  16. Приоритетная очередь. (755)
    Реализовать приоритетную очередь с операциями добавления элемента и извлечения (удаления) максимального элемента. Исходно очередь пуста. Затем на вход программы подаются количество команд и сами команды в виде: 0 пробел число (добавить число в очередь), 1 (извлечь максимальное число из очереди). Для каждой команды извлечения программа должна вывести удаляемое число.