아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Размещение симбиотов (Basic)

시간 제한2초메모리 제한1024 MB

요약
2n개의 심비오트를 각 수용자가 최대 4개까지 담을 수 있고 위험도 합이 B 이하인 조건에서 배치하되, 각 쌍의 두 심비오트는 i번째나 i-1번째 수용자 쌍에서만 고르고 같은 수용자에 들어갈 수 없을 때, 필요한 최소 수용자 수와 배치를 구한다.
난이도

보통10점 중 6점

유형
그리디, 구현, 정렬
정답자
아직 제출이 없습니다

문제

Вернемся немного во времени в события первого фильма, когда корпорация <<Фонд жизни>> проводила эксперименты на людях с участием симбиотов. В итоге все закончилось довольно хорошо, но давайте представим, что было бы, если Эдди с Веномом не остановили бы запуск ракеты, и еще больше симбиотов прибыли бы на Землю.

Прилетевшие 2n2n симбиотов хотят найти себе носителей, и для этого они отобрали 2n2n самых здоровых людей. Известно, что ii-й симбиот обладает опасностью a_ia\_i, а ii-й носитель --- вместимостью ровно BB. Отобранные люди оказались настолько крепкими, что каждый из них может вместить аж до четырех симбиотов одновременно, но только если их суммарная опасность не превышает вместимости носителя.

Чтобы все было честно, был определен следующий порядок объединения с носителями:

  1. все носители разбиваются на пары, в паре номер ii находятся носители с номерами 2i−12i - 1 и 2i2i (нумерация как носителей, так и пар, с единицы);
  2. аналогичным образом на пары разбиваются все симбиоты;
  3. каждый симбиот из ii-й пары может выбрать произвольного носителя из ii-й или (i−1)(i - 1)-й пары (если, конечно, его вместимости для этого хватает).

При этом так случайно получилось, что симбиоты, находящиеся в одной паре, не очень любят друг друга, и отказываются находиться в одном носителе.

Помогите симбиотам определить, какого минимального числа носителей достаточно, чтобы вместить в себя всех симбиотов по описанным правилам. Остальные будут \sout{съедены} отпущены домой.

입력

В первой строке ввода через пробел даны два целых числа: nn --- количество пар симбиотов (и, соответственно, носителей), и BB --- вместимость каждого носителя (1⩽n⩽3⋅1051 \leqslant n \leqslant 3 \cdot 10^5; 1⩽B⩽1091 \leqslant B \leqslant 10^9).

Во второй строке через пробел перечислены 2n2n целых чисел a_ia\_i --- значения опасности каждого симбиота (1⩽a_i⩽B1 \leqslant a\_i \leqslant B).

출력

В первой строке вывода выведите минимальное количество носителей tt, которого хватит для размещения всех симбиотов с соблюдением всех описанных условий.

В следующей строке через пробел выведите 2n2n целых чисел h_ih\_i --- номера носителей, в которых должны расположиться симбиоты, на ii-м месте --- номер носителя для ii-го симбиота. Должно выполняться h_2i−1≠h_2ih\_{2i - 1} \neq h\_{2i} для всех ii от 11 до nn.

Если распределений симбиотов по носителям, приводящих к оптимальному ответу, несколько, выведите любой подходящий ответ.

예제2

  1. 예제 1

    입력
    2 8
    4 5 6 7
    
    예상 출력
    4
    1 2 3 4
    
  2. 예제 2

    입력
    2 8
    3 4 5 6
    
    예상 출력
    3
    1 2 1 4