Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5_задачи.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
120.83 Кб
Скачать

Задача 16*

Задано алгебраическое выражение, составленное из неотрицательных вещественных чисел и знаков операций +, – и *. Необходимо расставить в этом выражении скобки, чтобы его значение стало максимально возможным.

В первой строке входного файла записано исходное выражение длиной не более 512 символов. Внутри чисел пробелы не допускаются. Выражение содержит не более 50 чисел, каждое из которых лежит в диапазоне от 0 до 106. В выходной файл выводится вещественное число — максимально возможное после расстановки скобок значение полученного выражения. Решения принимаются с точностью до 1%.

Пример

Входной файл: input.txt

Выходной файл: output.txt

0.3*2-0.25*3*4-5.25

4.72500000000000E+0000

Задача 17*

Имеются река, ширина которой определяется целым числом N (0<N<256), и лягушка, которой необходимо пересечь эту реку. Также имеются камни, пересекающие реку по прямой линии, задающиеся целыми числами (т.е. 1, 2, 3, . . .) --- расстоянием между соседними камнями. Лягушка может прыгать с камня на камень. Однако лягушка может

изменять свою скорость в каждом прыжке не более чем на единицу. Таким образом, если предыдущая длина прыжка лягушки была 5, то следующая может быть 4, 5 или 6. Начальная скорость равна 0. Очевидно, что лягушка не должна прыгать в реку. Однако, других ограничений нет (если кто-либо спросит, может ли лягушка прыгать назад, то получит ответ "да").

Задан массив (L1, .., Lk) такой, что L1+...+Lk = N. Напишите программу, определяющую как лягушка должна пересечь реку, если такая последовательность существует.

На входе массив L[1..K], (0< K <= N).

На выходе последовательность номеров камней, начинающаяся с первого камня и заканчивающаяся K-м камнем, либо фраза "решения нет".

Примеры.

Вход: 1 3 1 Выход: "решения нет".

Вход: 1 2 1 4 Выход: 1 2 1 3 4

Задача 18*

На рисунке изображено графическое представление двоичного дерева символов. Рассмотрим следующую последовательность действий на дереве двоичного поиска символов:

  • Удалить листья и вывести данные удаленных листьев

  • Повторять пока дерево не пусто

Начиная от дерева, нижнего слева, мы получим последовательность показанных деревьев, и затем пустое

дерево, удаляя следующие данные: BDHPY, CM, GQ, K.

Ваша задача состоит в том, чтобы исходя из такой последовательности строк листьев дерева бинарного поиска символов, выдать префиксный обход дерева.

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

Для входных данных существует единственное бинарное дерево поиска, которое даст последовательность листьев. Выходной файл состоит из строки, состоящей из префиксного обхода такого дерева, без пробелов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]