"""
Задание 3.

Для этой задачи:
1) придумайте 2-3 решения (не менее двух)
2) оцените сложность каждого решения в нотации О-большое
3) сделайте вывод, какое решение эффективнее и почему

Примечание:
Без выполнения пунктов 2 и 3 задание считается нерешенным. Пункты 2 и 3 можно выполнить
через строки документации в самом коде.
Если у вас возникают сложности, постарайтесь подумать как можно решить задачу,
а не писать "мы это не проходили)".
Алгоритмизатор должен развивать мышление, а это прежде всего практика.
А без столкновения со сложностями его не развить.

Сама задача:
Имеется хранилище с информацией о компаниях: название и годовая прибыль.
Для реализации хранилища можно применить любой подход,
который вы придумаете, например, реализовать словарь.
Реализуйте поиск трех компаний с наибольшей годовой прибылью.
Выведите результат.
"""
"""

import operator

dict1 = {"one": 10000, "two": 30000, "three": 15000, "four": 25000, "five": 20000}
sorted_values = sorted(dict1.values()) # Sort the values
sorted_dict = {}

for i in sorted_values:
    for k in dict1.keys():
        if dict1[k] == i:
            sorted_dict[k] = dict1[k]
            break
a =  sorted_dict
print(sorted(a))
b = sorted(a, reverse = True)

print(b)
"""

"""
import operator

dict1 = {"one": 10000, "two": 30000, "three": 15000, "four": 25000, "five": 20000}
sorted_tuples = sorted(dict1.items(), key=operator.itemgetter(1))
print(sorted_tuples)  # [(1, 1), (3, 4), (2, 9)]
sorted_dict = {k: v for k, v in sorted_tuples}

print(sorted_dict) # {1: 1, 3: 4, 2: 9}
a = sorted(dict1, reverse=True)
print(a) #
"""

D = {"one": 10000, "two": 30000, "three": 15000, "four": 25000, "five": 20000}
my_max_val = 0
for k,v in D.items():
    if v > my_max_val:
        my_max_val=v
        my_max_key=k

print(my_max_key)
#  Сложность О(n)
#  Задание выполнил насколько смог. Много время потратил. Видимо, для меня пока не под силу решать подобные задачи.
