Автор: | М. Спорышев | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt | |||
Максимальный балл: | 100 |
Молодой программист Вася недавно написал очень популярное и полезное веб-приложение, которое привлекло внимание спонсоров.
Теперь у Васи есть много денег, и он может основать свою компанию! Но для этого ему нужны сотрудники. Вася хочет чтобы у него в компании было два отдела. В первом отделе программисты будут заниматься разрабатыванием и тестированием новых идей, во втором - внедрением надежных и протестированных разработок первого отдела в приложение Васи.
Вася дал объявление о наборе сотрудников в каждый отдел и сейчас он имеет на руках список желающих. Каждый желающий указал, в какой отдел он хочет идти работать, либо указал, что готов работать в любом отделе. Тем не менее, Вася может нанять любого желающего только в один из отделов.
Каждому человеку из списка Вася поставил в соответствие некоторое целое число, которое характеризует полезность данного человека для компании. Теперь Вася хочет нанять сотрудников в оба отдела своей компании, так чтобы суммарная их полезность была максимально возможной.
Однако сотрудникам надо платить зарплату, а количество денег у Васи строго ограничено, поэтому он заранее указал количество сотрудников, которое он может нанять в каждый отдел.
Вам требуется написать программу, которая укажет, каких сотрудников нанял Вася в каждый отдел.
Первая строка входного файла содержит целые числа N, M, K — количество желающих работать у Васи в компании, количество сотрудников, которое может нанять Вася в первый и второй отдел соответственно.
Вторая строка содержит N целых чисел ai — полезность желающего с номером i.
Третья строка содержит N целых чисел di, имеющих значения 1,2 либо 0 — 1, если i-й желающий хочет работать в первом отделе, 2 — во втором, либо 0 — в обоих.
В первой строке входного файла требуется вывести N1 — количество сотрудников, нанятых в первый отдел и N1 целых чисел — номера желающих, нанятых в данный отдел. Желающие пронумерованы начиная с 1.
В первой строке входного файла требуется вывести N2 — количество сотрудников, нанятых во второй отдел и N2 целых чисел — номера желающих, нанятых в данный отдел.
Если существует несколько решений, выведите любое из них.
1 ≤ N, M, K ≤ 100000.
1 ≤ ai ≤ 104.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|