В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
ARKSHIM
ARKSHIM
29.07.2021 21:48 •  Информатика

Куча - Выбрать Максимум Напишите программу, которая будет обрабатывать последовательность запросов таких видов:

CLEAR — сделать пирамиду пустой (если в пирамиде уже были какие-то элементы, удалить все). Действие происходит только с данными в памяти, на экран ничего не выводится.

ADD n — добавить в пирамиду число n. Действие происходит только с данными в памяти, на экран ничего не выводится.

EXTRACT — вынуть из пирамиды максимальное значение. Следует и изменить данные в памяти, и вывести на экран или найденное максимальное значение, или, если пирамида была пустой, слово "CANNOT" (большими буквами).

Входные данные

Во входных данных записано произвольную последовательность запросов CLEAR, ADD и EXTRACT — каждый в отдельной строке, согласно вышеописанному формату.

Суммарное количество всех запросов не превышает 200000.

Выходные данные

Для каждого запроса типа EXTRACT выведите на стандартный выход (экран) его результат (в отдельной строке).

Примеры

Входные данные

ADD 192168812

ADD 125

ADD 321

EXTRACT

EXTRACT

CLEAR

ADD 7

ADD 555

EXTRACT

EXTRACT

EXTRACT

Выходные данные

192168812

321

555

7

CANNOT

Показать ответ
Ответ:
rafon3d
rafon3d
24.12.2022 13:30

Private Sub CommandButton1_Click()

Dim s As Integer, z As Integer

Dim t As String

t = "Для оплате в кассе необходимы:"

s = CInt(InputBox("Введите сумму оплаты"))

Do While s > 0

If s >= 500 Then

s = s - 500: k = k + 1

ElseIf s >= 200 Then

s = s - 200: m = m + 1

ElseIf s >= 100 Then

s = s - 100: n = n + 1

ElseIf s >= 50 Then

s = s - 50: z = z + 1

ElseIf s >= 10 Then

s = s - 10: v = v + 1

ElseIf s >= 5 Then

s = s - 5: h = h + 1

ElseIf s >= 2 Then

s = s - 2: f = f + 1

ElseIf s >= 1 Then

s = s - 1: d = d + 1

End If

Loop

If k > 0 Then

t = t + " " & k & " по 500 рублей, "

t = t + " " & m & " по 200 рублей, "

t = t + " " & n & " по 100 рублей, "

t = t + " " & z & " по 50 рублей, "

t = t + " " & v & " по 10 рублей, "

t = t + " " & h & " по 5 рублей, "

t = t + " " & f & " по 2 рублей, "

t = t + " " & d & " по 1 рублей, "

Cells(10, 1) = t

End If

End Sub

0,0(0 оценок)
Ответ:
Geniud
Geniud
28.02.2021 04:31

Произведём замену: y1 = x1 ≡ x2; y2 = x3 ≡ x4; y3 = x5 ≡ x6; y4 = x7 ≡ x8. Получим уравнение:



(y1 → y2) ∧ (y2 → y3) ∧ (y3 → y4) = 1.



Логическое И истинно, только тогда, когда истины все утверждения, поэтому данное уравнение эквивалентно системе уравнений:


Импликация ложна только в случае, если из истинного следует ложное. Данная система уравнений описывает ряд переменных {y1, y2, y3, y4}. Заметим, что если любую переменную из этого ряда приравнять 1, то все следующие должны также быть равны 1. То есть решения системы уравнений: 0000; 0001; 0011; 0111; 1111.


Уравнения вида xN ≡ x{N+1} = 0 имеют два решения, уравнения вида xN ≡ x{N+1} = 1 также имеет два решения.


Найдём сколько наборов переменных x соответствуют каждому из решений y.


Каждому из решений 0000; 0001; 0011; 0111; 1111 соответствует 2 · 2 · 2 · 2 = 16 решений. Всего 16 · 5 = 80 решений.



ответ: 80.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота