12083. Заповнити проміжки


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python

Маємо послідовність довжини \(N\), що складається з натуральних чисел: \(A=(A_1 ,…,A_N )\). Будь-які два суміжні числа мають різні значення.

Вставимо кілька чисел у цю послідовність наступним чином.

  • Якщо кожна пара суміжних членів у \(A\) має абсолютну різницю 1, завершіть процедуру.
  • Нехай \(A_i\) ​,\(A_{i+1}\) ​ — пара суміжних членів, найближчих до початку \(A\), абсолютна різниця яких не дорівнює 1.

    Якщо \(A_i ​ <A_{i+1}\) ​ , вставте \(A_i+1\),\(A_i+2\),… ,\(A_{i+1}−1\) між \(A_i\) ​ та \(A_{i+1 ​}\).

    Якщо \(A_i ​ >A_{i+1}\) ​ , вставте \(A_i −1\),\(A_i−2\),…,\(A_{i+1} ​+1\) між \(A_i\) ​ та \(A_{i+1}\) .

  • Поверніться до кроку 1.

Виведіть послідовність після завершення описаної процедури.

Обмеження

  • \(2≤N≤100\)
  • \(1≤A_i ≤100\)
  • \(A_i ​ \neq A_{I+1}\) ​
  • Усі значення у вхідних даних є цілими числами.

Формат вхідних даних

Перший рядок містить ціле число \(N\).

Наступний   рядок містить цілі числа \(A_i\).

Формат вихідних даних

У вихідний потік виведіть елементи послідовності після завершення процедури, розділивши їх пробілами.

Приклад вхідних даних

4
2 5 1 2

Приклад вихідних даних

2 3 4 5 4 3 2 1 2

Початкова послідовність (2,5,1,2). Процедура відбувається наступним чином.

  • Вставте 3,4 між першим членом 2 і другим членом 5, утворюючи послідовність (2,3,4,5,1,2).
  • Вставте 4,3,2 між четвертим членом 5 і п’ятим членом 1, утворюючи послідовність (2,3,4,5,4,3,2,1,2).

Приклад вхідних даних

6
3 4 5 6 5 4

Приклад вихідних даних

3 4 5 6 5 4

Не можна виконувати вставки.


Коментарі

Ще немає коментарів.