Контест Senior Алгоритмы STL и ranges обновлено

Собрать выделенные файлы в точку вставки

Условие

В списке n файлов пользователь выделил несколько (возможно, вразброс) и перетащил их в позицию p (между файлами, 0 означает перед первым, n после последнего). Выделенные файлы должны собраться вплотную вокруг этой позиции: выделенные из части левее p встают непосредственно перед p, выделенные из правой части сразу после p. Относительный порядок выделенных между собой и невыделенных между собой сохраняется.

Ввод: в первой строке n и p (1 ≤ n ≤ 3000, 0 ≤ p ≤ n), во второй имена файлов, в третьей n флагов 0/1 (1 = выделен).

Вывод: новый порядок имён через пробел.

Пример 1

Ввод:

6 3
a b c d e f
1 0 1 0 1 0

Вывод:

b a c e d f

Пример 2

Ввод:

3 0
x y z
0 1 1

Вывод:

y z x

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.