"""
Задание 3.
Для этой задачи:
1) придумайте 2-3 решения (не менее двух)
2) оцените сложность каждого решения в нотации О-большое
3) сделайте вывод, какое решение эффективнее и почему
Сама задача:
Имеется хранилище с информацией о компаниях: название и годовая прибыль.
Для реализации хранилища можно применить любой подход,
который вы придумаете, например, реализовать словарь.
Реализуйте поиск трех компаний с наибольшей годовой прибылью.
Выведите результат.
Примечание:
Без выполнения пунктов 2 и 3 задание считается нерешенным. Пункты 2 и 3 можно выполнить
через строки документации в самом коде.
Прошу вас внимательно читать ТЗ и не забыть выполнить все пункты.
Задание творческое. Здесь нет жестких требований к выполнению.
"""

profits_companies = {
    'OOO Медведь': 1000,
    'OOO Заяц': 5000,
    'ИП Волк': 3000,
    'ИП Лиса': 7000,
    'ИП Сова': 8000,
    'OOO Бобер': 500
}

#Вариант 1
#Сложность: O(n)
sorted_companies = sorted(profits_companies.items(), key=lambda x: x[1])
print(sorted_companies[:3])

#Вариант 2
#Сложность: O(n^2)
flag = 0
for value in (sorted(val for key, val in profits_companies.items())):
    for key, val in profits_companies.items():
        if val == value:
            print(key, val)
            flag += 1
            if flag == 3:
                exit()

#Вывод: Первый вариант проще так как сложность меньше