Загрузка данных


Задача 1
Считайте число N – количество пар слов в англо-русском словаре. В следующих N строках вводятся слова в формате слово_en - слово_ru. Затем вводится одно английское слово. Программа должна вывести его перевод на русский язык, а если слова нет в словаре – вывести «Не найдено», используя метод .get().
Входные данные: Сначала целое число N, затем N строк вида `apple – яблоко`, затем искомое слово.
Выходные данные: Перевод слова или «Не найдено»
Задача 2
В консоль вводится строка с оценками ученика через пробел (например, 5 4 5 3 5 4 2). Постройте словарь, где ключом является оценка, а значением – сколько раз она встречается. Выведите пары оценка: количество в порядке возрастания оценок.
Входные данные: Строка с целыми числами через пробел. 
Выходные данные: Содержимое словаря в формате «Оценка: частота»
Задача 3
Даны два списка товаров с их количеством на двух разных складах. Считайте с клавиатуры две строки вида товар:количество через пробел (например, яблоки:100 бананы:50). Объедините данные в один итоговый словарь. Если товар есть на обоих складах, их количества должны сложиться.
Входные данные: Две строки с парами товар:количество через пробел
Выходные данные: Содержимое словаря в формате «товар: количество»
Задача 4
В файле results.txt записаны результаты тестирования в формате Фамилия Балл (по одному человеку на строку). Считайте файл в словарь и найдите ученика с максимальным баллом. Выведите его фамилию и балл.
Входные данные: Файл results.txt.
Выходные данные: Строка формата «Фамилия Оценка».
Задача 5
Дана строка из пар ключ=значение через пробел, где все значения гарантированно уникальны. Напишите программу, которая поменяет ключи и значения местами и выведет новый словарь, отсортированный по новым ключам.
Входные данные:  Строка пар вида a=1 b=2 c=3.
Выходные данные: Инвертированный словарь в формате: «новый ключ: значение»
Задача 6
Считайте строку текста. Постройте частотный словарь всех букв (игнорируя пробелы, знаки препинания и регистр). Выведите букву, которая встречается чаще всего, и количество её вхождений. Если таких букв несколько, выведите ту, которая раньше идет по алфавиту.
Входные данные: Строка текста.
Выходные данные: Строка вида «Буква ‘_’ встречается _ раз(а)».
Задача 7
Пользователь вводит строку текста. Сформируйте словарь, где ключом является длина слова, а значением – список слов такой длины (без повторений). Выведите словарь, отсортированный по возрастанию длин.
Входные данные: Строка текста.
Выходные данные: Итоговый словарь в формате «Длина слова: само слово».
Задача 8
В файле logs.txt записаны действия пользователей в формате ID_пользователя время статус (например, u101 12:00 online). Один и тот же пользователь может встречаться несколько раз. Напишите программу, которая сохраняет для каждого ID_пользователя только его последнее по времени событие, используя словарь.
Входные данные: Файл logs.txt
Выходные данные: Строка формата «ID_пользователя: последнее по времени событие»
Задача 9
Вводится список слов через пробел. Напишите программу, которая группирует слова-анаграммы (состоящие из одинакового набора букв, например, кот-ток, сон-нос). В качестве ключа словаря используйте отсортированный кортеж букв слова.
Входные данные: Строка слов через пробел.
Выходные данные: Отсортированное множество найденных элементов.
Задача 10
Дан текст. Найдите первый символ в тексте, который встречается в нём ровно один раз. Решите задачу за два прохода по строке: первый проход строит частотный словарь, второй – находит первый символ с частотой 1.
Входные данные: Строка текста.
Выходные данные: Найденный символ и его индекс (или "Нет уникальных", если такого символа нет).
Задача 11*
Дан массив целых чисел и число K. Найдите количество непрерывных подмассивов, сумма элементов которых равна ровно K.
Входные данные: Первая строка – числа массива через пробел. Вторая строка – число K.
Выходные данные: Количество подмассивов (например, при вводе строки «1 1 1» и строки «2» вывод будет 2  - подмассивы с индексов 0-1 и 1-2).
Задача 12*
Дана последовательность пар чисел (a, b) (вводятся через пробел как 1-2 3-4 2-1). Пара считается зеркальной, если есть пара (b, a). Найдите все «сиротские» пары, у которых нет зеркальной пары, за один проход с использованием словаря или множества кортежей.
Входные данные: Строка с парами чисел вида a-b через пробел.
Выходные данные: Список пар по условию задачи.
Задача 13*
Ориентированный граф задан словарем, где ключ – вершина, а значение - список (или множество) вершин, в которые из неё есть рёбра. Напишите программу, которая строит обратный граф (разворачивает направление всех рёбер).
Входные данные: Сначала N (количество вершин), затем N строк вида вершина смежные_вершины_через_пробел.
Выходные данные: Словарь вида «вершина – смежные вершины через пробел»
Тестовые данные:
Вход:
3
1-2 3
2-3
3-
Вывод:
1: 
2: 1
3: 1 2
Задача 14*
Даны перепутанные билеты на поезд в формате Откуда-Куда через пробел. Восстановите полный последовательный маршрут от начальной до конечной точки.
Подсказка: Найти стартовый город можно через разность множеств отправлений и прибытий, а построить путь – проходом по словарю.
Входные данные: Строка пар Откуда-Куда через пробел.
Выходные данные: Маршут от начала и до конца. Разделитель чежду городами « - »
Тестовый вход: Москва-Сочи Казань-Москва Сочи-Анапа
Тестовый выход: Казань - Москва - Сочи - Анапа


words = input().split()
d = {}
for w in words:
    ln = len(w)
    if ln not in d:
        d[ln] = []
    if w not in d[ln]:
        d[ln].append(w)
for k in sorted(d):
    print(f"{k}: {', '.join(d[k])}")