| Финал Яндекс.Алгоритм 2018 |
|---|
| Закончено |
Наибольшей возрастающей подпоследовательностью (НВП) массива a1, ..., an называется последовательность индексов 1 ≤ i1 < ... < ik ≤ n, такая что ai1 < ... < aik и значение k максимально возможное. Наибольшая убывающая подпоследовательность (НУП) определяется аналогично.
В самой свежей задаче для собеседований в Яндекс вам даётся перестановка p = (p1, ..., pn) чисел 1, 2, ..., n, в которой требуется выбрать НВП и НУП не имеющие общих элементов, или определить, что это невозможно сделать. Формально, требуется выбрать две последовательности индексов i1 < ... < ik и j1 < ... < jl, такие что:
В первой строке записано целое число n (1 ≤ n ≤ 500 000) — размер перестановки p.
Во второй строке записаны n различных целых чисел p1, p2, ..., pn (1 ≤ pi ≤ n).
Если ответ существует, то выведите его в четырёх строках. В первой строке выведите целое число k — размер НВП в перестановке p. Во второй строке выведите k чисел i1, ..., ik удовлетворяющих условиям 1 ≤ i1 < ... < ik ≤ n и ai1 < ... < aik. В следующих двух строках выведите описание НУП j1, ..., jl в аналогичном формате. Все индексы i1, ..., ik, j1, ..., jl должны быть различны.
Если ответа не существует, то выведите «IMPOSSIBLE» (без кавычек) в единственной строке вывода.
4
2 4 1 3
2
1 4
2
2 3
4
3 4 1 2
IMPOSSIBLE
Во втором примере длины НВП и НУП равны 2. Приведём список всех возможных НВП: (1, 2), (3, 4) (указаны индексы элементов, а не их значения); также приведём список всех возможных НУП: (1, 3), (1, 4), (2, 3), (2, 4). Каждая НУП пересекается с каждой из НВП хотя бы по одному элементу, следовательно, ответа не существует.
| Название |
|---|


