ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1100. Таблица результатов

Python - Accepted solution suggestions ENG + RUS
Послано nIIIpls 15 сен 2020 14:23
Hope it will help someone <3

You need to create a dictionary (dict) with keys from '100' to '0' (keys in str format) and values ​​in the form of empty lists (list) - {'100': [], '99': [], ..., '0 ': []}.

After that, you need to read the commands IDs and their results in a loop, and then add the commands IDs to the dictionary with the key as the commands results - if you get the values ​​"11 2", then add the command ID 11 to the dictionary under the key 2 (command result) - [..., '2': [11], ...].

When we finish adding commands, we will have a sorted dictionary and all that remains is to print the values. In the loop we go through the dictionary and if the value (list) is not empty, then we display all the values ​​in the format "command_id dictionary_key".


Нужно создать словарь с ключами от '100' до '0' (ключи в формате str) и значениями в виде пустых списков (list) - {'100': [], '99': [], ..., '0': []}.

После этого нужно в цикле считывать ID команд и их результат, после чего добавлять ID команд в словарь с ключом в виде результата команды - если получили значения "11 2", значит добавляем ID команды 11 в словарь под ключом 2 (результат команды) - [..., '2': [11], ...].

Когда закончим добавление команд то у нас будет уже отсортированный словарь и останется только вывести значения. В цикле проходим по словарю и если значение (список) не пустой, то выводим все значения в формате "ID_команды ключ_словаря".
Re: Python - Accepted solution suggestions ENG + RUS
Послано BENDER 24 окт 2021 21:43
There is no bubble sort, but I finally did it as you suggested to fit in memory limit. Thnx)
import sys

dict ={}
for x in range(100,-1,-1):
    dict.update({str(x):[]})

def process(line):
    k = [x for x in line.split()]
    if len(k)!=1:
        dict[k[1]].append(k[0])

for line in sys.stdin:
    process(line)

for x, y in dict.items():
    if y:
        for t in y:
            print(t, x)