Codeforces Round 615 (Div. 3) |
---|
Закончено |
Напомним, что MEX массива — это минимальное неотрицательное целое число, которое не представлено в массиве. Примеры:
Вам задан пустой массив $$$a=[]$$$ (иными словами, массив нулевой длины). Также вам задано положительное целое число $$$x$$$.
Вам дано $$$q$$$ запросов. $$$j$$$-й запрос состоит из одного целого числа $$$y_j$$$, которое означает, что вы должны дописать один элемент $$$y_j$$$ в массив. Длина массива увеличивается на $$$1$$$ после каждого запроса.
За один ход вы можете выбрать любой индекс $$$i$$$ и присвоить $$$a_i := a_i + x$$$ или $$$a_i := a_i - x$$$ (т.е. увеличить или уменьшить любой элемент на $$$x$$$). Единственное ограничение — $$$a_i$$$ не может стать отрицательным. Так как изначально массив пуст, вы можете совершать ходы только после первого запроса.
Вам нужно максимизировать MEX (minimum excluded) массива, применив какое-то количество подобных операций (вы также можете применить несколько таких операций к одному и тому же элементу).
Вам необходимо найти ответ после каждого из $$$q$$$ запросов (то есть $$$j$$$-й ответ соответствует массиву длины $$$j$$$).
Операции отменяются после каждого запроса. То есть массив $$$a$$$ после $$$j$$$-го запроса равен $$$[y_1, y_2, \dots, y_j]$$$.
Первая строка входных данных содержит два целых числа $$$q, x$$$ ($$$1 \le q, x \le 4 \cdot 10^5$$$) — количество запросов и значение числа $$$x$$$.
Следующие $$$q$$$ строк описывают запросы. $$$j$$$-й запрос состоит из целого числа $$$y_j$$$ ($$$0 \le y_j \le 10^9$$$) и означает, что вы должны дописать один элемент $$$y_j$$$ в массив.
Выведите ответ на изначальную задачу после каждого запроса — для запроса $$$j$$$ выведите максимальное значение MEX после первых $$$j$$$ запросов. Стоит заметить, что запроса зависимы (массив меняется после каждого запроса), но операции между запросами независимы.
7 3 0 1 2 2 0 0 10
1 2 3 3 4 4 7
4 3 1 2 1 2
0 0 0 0
В первом тестовом примере:
Название |
---|