Codeforces Round 552 (Div. 3) |
---|
Закончено |
В ряд выстроены $$$n$$$ студентов. Два тренера набирают две команды — первый тренер выбирает первую команду, а второй тренер выбирает вторую команду.
Умение программировать $$$i$$$-го студента равно целому числу $$$a_i$$$. Все умения программировать различны и лежат в отрезке от $$$1$$$ до $$$n$$$.
Сначала первый тренер выбирает себе студента с максимальным умением программировать среди всех студентов, не взятых в какую-либо команду, а также $$$k$$$ студентов, стоящих ближе всего слева от него и $$$k$$$ студентов, стоящих ближе всего справа от него (если слева или справа стоит меньше, чем $$$k$$$ студентов, все они будут взяты). Все выбранные студенты покидают ряд и присоединяются к первой команде. Затем второй тренер делает такой же ход (но все студенты, выбранные им, присоединяются ко второй команде). Затем опять первый тренер делает такой же ход, и так далее. Это продолжается до тех пор, пока есть хотя бы один студент, стоящий в ряду.
Ваша задача — определить, какие студенты будут взяты в первую команду, а какие будут взяты во вторую команду.
Первая строка входных данных содержит два целых числа $$$n$$$ и $$$k$$$ ($$$1 \le k \le n \le 2 \cdot 10^5$$$) — количество студентов и значение, определяющее отрезок выбранных студентов соответственно.
Вторая строка входных данных содержит $$$n$$$ целых чисел $$$a_1, a_2, \dots, a_n$$$ ($$$1 \le a_i \le n$$$), где $$$a_i$$$ равно умению программировать $$$i$$$-го студента. Гарантируется, что все умения программировать различны.
Выведите строку, состоящую из $$$n$$$ символов; $$$i$$$-й символ должен быть равен 1, если $$$i$$$-й студент присоединится к первой команде и 2 в ином случае.
5 2 2 4 5 3 1
11111
5 1 2 1 3 5 4
22111
7 1 7 2 1 3 5 4 6
1121122
5 1 2 4 5 3 1
21112
В первом тестовом примере первый тренер выберет студента на позиции $$$3$$$ и ряд станет пустым (все студенты пойдут в первую команду).
Во втором тестовом примере первый тренер выберет студента на позиции $$$4$$$ и ряд превратится в $$$[2, 1]$$$ (студенты с умениями программировать $$$[3, 4, 5]$$$ пойдут в первую команду). Затем второй тренер выберет студента на позиции $$$1$$$ и ряд станет пустым (и студенты с умениями программировать $$$[1, 2]$$$ пойдут во вторую команду).
В третьем тестовом примере первый тренер выберет студента на позиции $$$1$$$ и ряд превратится в $$$[1, 3, 5, 4, 6]$$$ (студенты с умениями программировать $$$[2, 7]$$$ пойдут в первую команду). Затем второй тренер выберет студента на позиции $$$5$$$ и ряд превратится в $$$[1, 3, 5]$$$ (студенты с умениями программировать $$$[4, 6]$$$ пойдут во вторую команду). Затем первый тренер выберет студента на позиции $$$3$$$ и ряд превратится в $$$[1]$$$ (студенты с умениями программировать $$$[3, 5]$$$ пойдут в первую команду). И затем второй тренер выберет оставшегося студента (и студент с умением программировать $$$1$$$ пойдет во вторую команду).
В четвертом тестовом примере первый тренер выберет студента на позиции $$$3$$$ и ряд превратится в $$$[2, 1]$$$ (студенты с умениями программировать $$$[3, 4, 5]$$$ пойдут в первую команду). Затем второй тренер выберет студента на позиции $$$1$$$ и ряд станет пустым (и студенты с умениями программировать $$$[1, 2]$$$ пойдут во вторую команду).
Название |
---|