10934. Дуби
На алеї в ряд висаджені \(n\) дубів. У зв'язку з майбутнім приїздом президента, було прийнято рішення зрубати кілька дерев для надання алеї більш естетичного вигляду.
Внутрішні розпорядки мерії міста дозволяють зрубувати дуб тільки в двох випадках:
- якщо і найближчий дуб зліва, і найближчий дуб справа строго нижче, ніж даний дуб;
- якщо і найближчий дуб ліворуч, і найближчий дуб справа строго вище, ніж даний дуб.
Зокрема, згідно з цим правилом, не можна зрубати крайній лівий і крайній правий дуби. Мер хоче виробити такий план вирубки, щоб у підсумку залишилося кілька дубів, висоти яких утворюють неспадну послідовність, тобто щоб кожен дуб був не нижчим, ніж усі дуби, що стоять ліворуч від нього. При цьому, як людина, що любить флору, мер хоче, щоб було зрубано мінімальну можливу кількість дерев.
Допоможіть співробітникам мерії скласти оптимальний план вирубки алеї або з'ясувати, що зрубати дуби відповідним чином неможливо.
Формат вхідних даних
Перший рядок містить ціле число \(n\) — кількість дубів, що ростуть на алеї (\(2 ≤ n ≤ 200\)).
Другий рядок містить \(n\) чисел — висоти дубів, наведені зліва направо. Висоти дубів — додатні цілі числа, що не перевищують 1000.
Формат вихідних даних
Якщо залишити послідовність дубів з неспадними висотами неможливо, то вихід повинен містити тільки одне число - 1.
У разі, якщо шуканий план існує, в перший рядок виведіть ціле число \(m\) - мінімальна кількість дубів, які необхідно зрубати.
У наступних \(m\) рядках виведіть оптимальний план вирубки дерев — номери дубів у тому порядку, в якому їх слід зрубати, з одним номером на рядку. Дуби нумерують зліва направо натуральними числами від 1 до \(n\). Якщо планів із найменшою кількістю зрубаних дубів кілька, виведіть будь-який із них.
Приклад вхідних даних
5
3 2 4 8 5
Приклад вихідних даних
2
2
4
Коментарі