ЗАДАЧИ
problems.ru
О проекте | Об авторах | Справочник
Каталог по темам | по источникам |
К задаче N

Проект МЦНМО
при поддержке
ЦПМ
Фильтр
Сложность с по   Класс с по  
Выбрано 3 задачи
Версия для печати
Убрать все задачи

Имя входного файла:

memory.in

Имя выходного файла:

memory.out

Максимальное время работы на одном тесте:

2 секунды

Максимальный объем используемой памяти:

64 мегабайта

Максимальная оценка за задачу:

100 баллов

   

Пете поручили написать менеджер памяти для новой стандартной библиотеки языка H++. В распоряжении у менеджера находится массив из N последовательных ячеек памяти, пронумерованных от 1 до N. Задача менеджера - обрабатывать запросы приложений на выделение и освобождение памяти.

Запрос на выделение памяти имеет один параметр K. Такой запрос означает, что приложение просит выделить ему K последовательных ячеек памяти. Если в распоряжении менеджера есть хотя бы один свободный блок из K последовательных ячеек, то он обязан в ответ на запрос выделить такой блок. При этом непосредственно перед самой первой ячейкой памяти выделяемого блока не должно располагаться свободной ячейки памяти. После этого выделенные ячейки становятся занятыми и не могут быть использованы для выделения памяти, пока не будут освобождены. Если блока из K последовательных свободных ячеек нет, то запрос отклоняется.

Запрос на освобождение памяти имеет один параметр T. Такой запрос означает, что менеджер должен освободить память, выделенную ранее при обработке запроса с порядковым номером T. Запросы нумеруются, начиная с единицы. Гарантируется, что запрос с номером T - запрос на выделение, причем к нему еще не применялось освобождение памяти. Освобожденные ячейки могут снова быть использованы для выделения памяти. Если запрос с номером T был отклонен, то текущий запрос на освобождение памяти игнорируется.

Требуется написать менеджер памяти, удовлетворяющий приведенным критериям.

Формат входных данных

Первая строка входного файла содержит числа N и M - количество ячеек памяти и количество запросов соответственно (1 ≤ N ≤ 231 - 1; 1 ≤ M ≤ 105). Каждая из следующих M строк содержит по одному числу: (i+1)-я строка входного файла (1 ≤ i ≤ M) содержит либо положительное число K, если i-й запрос - запрос на выделение с параметром K (1 ≤ K ≤ N), либо отрицательное число -T, если i-й запрос - запрос на освобождение с параметром T (1 ≤ T < i).

Формат выходных данных

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

Пример

memory.in

memory.out

6 8

2

3

-1

3

3

-5

2

2

1

3

-1

-1

1

-1

Вниз   Решение


Разложить на множители:  (b – c)³ + (c – a)³ + (a – b)³.

ВверхВниз   Решение


Два мага сражаются друг с другом. Вначале они оба парят над морем на высоте 100 метров. Маги по очереди применяют заклинания вида "уменьшить высоту парения над морем на a метров у себя и на b метров у соперника", где a, b – действительные числа,  0 < a < b.  Набор заклинаний у магов один и тот же, их можно использовать в любом порядке и неоднократно. Маг выигрывает дуэль, если после чьего-либо хода его высота над морем будет положительна, а у соперника – нет. Существует ли такой набор заклинаний, что второй маг может гарантированно выиграть (как бы ни действовал первый), если при этом число заклинаний в наборе
  а) конечно;  б) бесконечно?

Вверх   Решение

Задачи

Страница: 1 2 >> [Всего задач: 7]      



Задача 116047  (#1)

Темы:   [ Примеры и контрпримеры. Конструкции ]
[ Индукция (прочее) ]
[ Теория графов (прочее) ]
Сложность: 4-
Классы: 10,11

В некой стране 100 городов (города считайте точками на плоскости). В справочнике для каждой пары городов имеется запись, каково расстояние между ними (всего 4950 записей).

  а) Одна запись стёрлась. Всегда ли можно однозначно восстановить её по остальным?

  б) Пусть стёрлись k записей, и известно, что в этой стране никакие три города не лежат на одной прямой. При каком наибольшем k всегда можно однозначно восстановить стёршиеся записи?

Прислать комментарий     Решение

Задача 116048  (#2)

Темы:   [ Задачи на движение ]
[ Упорядочивание по возрастанию (убыванию) ]
[ Арифметическая прогрессия ]
Сложность: 4
Классы: 8,9,10,11

На кольцевом треке 2n велосипедистов стартовали одновременно из одной точки и поехали с постоянными различными скоростями (в одну сторону). Если после старта два велосипедиста снова оказываются одновременно в одной точке, назовём это встречей. До полудня каждые два велосипедиста встретились хотя бы раз, при этом никакие три или больше не встречались одновременно. Докажите, что до полудня у каждого велосипедиста было не менее n² встреч.

Прислать комментарий     Решение

Задача 116049  (#3)

Темы:   [ Неравенство треугольника (прочее) ]
[ Многоугольники (неравенства) ]
Сложность: 3+
Классы: 8,9,10,11

Имеется многоугольник. Для каждой стороны поделим её длину на сумму длин всех остальных сторон. Затем сложим все получившиеся дроби. Докажите, что полученная сумма меньше 2.

Прислать комментарий     Решение

Задача 116050  (#4)

Темы:   [ Теория игр (прочее) ]
[ Примеры и контрпримеры. Конструкции ]
Сложность: 4-
Классы: 10,11

Два мага сражаются друг с другом. Вначале они оба парят над морем на высоте 100 метров. Маги по очереди применяют заклинания вида "уменьшить высоту парения над морем на a метров у себя и на b метров у соперника", где a, b – действительные числа,  0 < a < b.  Набор заклинаний у магов один и тот же, их можно использовать в любом порядке и неоднократно. Маг выигрывает дуэль, если после чьего-либо хода его высота над морем будет положительна, а у соперника – нет. Существует ли такой набор заклинаний, что второй маг может гарантированно выиграть (как бы ни действовал первый), если при этом число заклинаний в наборе
  а) конечно;  б) бесконечно?

Прислать комментарий     Решение

Задача 116051  (#5)

Темы:   [ Вписанные четырехугольники (прочее) ]
[ Радикальная ось ]
[ Подобие ]
Сложность: 4
Классы: 10,11

Автор: Ивлев Б.М.

Четырёхугольник ABCD вписан в окружность с центром O, причём точка O не лежит ни на одной из диагоналей этого четырёхугольника. Известно, что центр описанной окружности треугольника AOC лежит на прямой BD. Докажите, что центр описанной окружности треугольника BOD лежит на прямой AC.

Прислать комментарий     Решение

Страница: 1 2 >> [Всего задач: 7]      



© 2004-... МЦНМО (о копирайте)
Пишите нам