Олимпиадный тренинг

Задача . F. Последовательная подпоследовательность


Задача

Темы: дп *1700

Вам задан массив целых чисел длины \(n\).

Вам необходимо выбрать такую подпоследовательность этого массива максимальной длины, что эта подпоследовательность является возрастающей последовательностью подряд идущих целых чисел. Иными словами подпоследовательность должна иметь вид \([x, x + 1, \dots, x + k - 1]\) для некоторого \(x\) и длины \(k\).

Подпоследовательность массива может быть получена при помощи удаления некоторого (возможно, нулевого) количества элементов из массива. Можно удалять элементы, которые не идут подряд. Оставшиеся элементы должны сохранить свой порядок. Например, для массива \([5, 3, 1, 2, 4]\) следующие массивы являются подпоследовательностями: \([3]\), \([5, 3, 1, 2, 4]\), \([5, 1, 4]\), а массив \([1, 3]\) не является.

Входные данные

Первая строка входных данных содержит целое число \(n\) (\(1 \le n \le 2 \cdot 10^5\)) — длину массива. Вторая строка входных данных содержит \(n\) целых чисел \(a_1, a_2, \dots, a_n\) (\(1 \le a_i \le 10^9\)) — сам массив.

Выходные данные

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

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

Примечание

Все возможные правильные ответы для первого тестового примера (как последовательности индексов):

  • \([1, 3, 5, 6]\)
  • \([2, 3, 5, 6]\)

Все возможные правильные ответы для второго тестового примера :

  • \([1, 4]\)
  • \([2, 5]\)
  • \([3, 6]\)

Все возможные правильные ответы для третьего тестового примера :

  • \([1]\)
  • \([2]\)
  • \([3]\)
  • \([4]\)

Все возможные правильные ответы для четвертого тестового примера:

  • \([1, 2, 3, 7, 8, 9]\)

Примеры
Входные данныеВыходные данные
1 7
3 3 4 7 5 6 8
4
2 3 5 6
2 6
1 3 5 2 4 6
2
1 4
3 4
10 9 8 7
1
1
4 9
6 7 8 3 4 5 9 10 11
6
1 2 3 7 8 9

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
Python1
С++ Mingw-w644
Комментарий учителя