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

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

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

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)³.

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

Задачи

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



Задача 30364

Темы:   [ Произведения и факториалы ]
[ Основная теорема арифметики. Разложение на простые сомножители ]
Сложность: 2+
Классы: 7,8,9

На сколько нулей оканчивается число 100!?

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

Задача 76473

Темы:   [ Арифметика остатков (прочее) ]
[ Задачи с ограничениями ]
[ Правило произведения ]
Сложность: 2+
Классы: 8,9

Сколько существует таких пар целых чисел x, y, заключённых между 1 и 1000, что  x² + y²  делится на 7.

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

Задача 76461

Темы:   [ Разложение на множители ]
[ Теорема Безу. Разложение на множители ]
Сложность: 3-
Классы: 8,9

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

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

Задача 76462

Темы:   [ Задачи на движение ]
[ Средние величины ]
Сложность: 3
Классы: 8,9

Пароход шёл от Нижнего Новгорода до Астрахани 5 суток, а обратно – 7 суток. Сколько дней плывут плоты от Нижнего Новгорода до Астрахани?

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

Задача 76465

Темы:   [ Неопределено ]
[ Методы решения задач с параметром ]
Сложность: 3
Классы: 10,11

Решить систему уравнений:

$\displaystyle \left\{\vphantom{
\begin{array}{rcl}
(x^3+y^3)(x^2+y^2)&=& 2b^5,\\
x+y&=& b.
\end{array}
}\right.$$\displaystyle \begin{array}{rcl}
(x^3+y^3)(x^2+y^2)&=& 2b^5,\\
x+y&=& b.
\end{array}$

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

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



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