Для решения данной задачи мы можем использовать словарь, где ключом будет пара (знакомец 1, знакомец 2), а значением будет количество лет знакомства. Затем мы сможем отсортировать словарь по убыванию значения и, если значения равны, по обратному лексикографическому порядку ключей.
Вот шаги решения на русском языке:
1. Создать пустой словарь.
2. Считывать строки ввода до тех пор, пока не встретится строка “READY”.
3. Разделить строку на две части – знакомца 1 и знакомца 2, а также количество лет знакомства.
4. Создать ключ в формате (знакомец 1, знакомец 2) или (знакомец 2, знакомец 1).
5. Проверить, существует ли ключ в словаре.
1. Если да, то добавить к текущему значению количество лет знакомства.
2. Если нет, то добавить новую запись в словарь с значением равным количеству лет знакомства.
6. Вывести отсортированное содержимое словаря в порядке убывания значений и, при равных значениях, в обратном лексикографическом порядке ключей.
1. Разделить ключ на знакомца 1 и знакомца 2.
2. Вывести знакомцев через запятую и пробел.
Например, если ввод будет следующим:
“`
Alice Bob 5
Charlie Dave 10
Alice Charlie 3
READY
“`
Вывод программы должен быть:
“`
Charlie, Dave
Alice, Charlie
Alice, Bob
“`
Так как знакомцы Charlie и Dave знакомы уже 10 лет, знакомцы Alice и Charlie – 8 лет, и знакомцы Alice и Bob – 5 лет.