Перейти к содержанию

Ыжыдвал


Рекомендуемые сообщения

В теме 2 сообщения

from bisect import bisect_left

 

def max_rectangle_area(lengths, queries):

    lengths.sort(reverse=True)

    n = len(lengths)

 

    for q in queries:

        index, new_length = q

        index -= 1 # Приводим индекс к нумерации с нуля

        lengths[index] = new_length

        lengths.sort(reverse=True)

 

        max_area = 0

        for i in range(n - 1):

            j = bisect_left(lengths, lengths[i]) # Ищем первый элемент, строго больший lengths[i]

            if j < n:

                max_area = max(max_area, lengths[i] * lengths[j])

 

        print(max_area)

 

# Пример использования

lengths = [1, 1, 2, 2, 3, 3]

queries = [(5, 2), (6, 2)]

max_rectangle_area(lengths, queries)

 

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...