Початкові значення елементів#8965

Початкові значення елементів (Розбір)

Нехай — найменший елемент початкового масиву (який слід вивести). Після того як до кожного елемента масиву буде додано значення , найменшим елементом отриманого масиву стане число .

Для відновлення початкових значень шукаємо найменший елемент у початковому масиві. Ми знаємо, що min = 2x. Щоб знайти , ділимо на : add = min / 2. Значення було додано до всіх елементів початкового масиву. Відповідно, щоб відновити початкові значення, з кожного елемента вхідного масиву слід відняти .

Приклад

У наведеному прикладі найменшим елементом буде min = -4. Розділимо його навпіл: add = min / 2 = -2. Тепер віднімаємо з кожного елемента вхідного масиву.

Реалізація алгоритму

Оголосимо робочий масив.

int m[101];

Читаємо вхідний масив. Знаходимо в ньому найменший елемент .

scanf("%d", &n);
min = 100;
for (i = 0; i < n; i++)
{
   scanf("%d", &m[i]);
   if (m[i] < min) min = m[i];
}

Ділимо найменший елемент навпіл — це значення було додано до всіх елементів початкового масиву.

add = min / 2;

З кожного елемента вхідного масиву віднімаємо знайдене значення . Одночасно виводимо відновлений (початковий) масив.

for (i = 0; i < n; i++)
{
  m[i] -= add;
  printf("%d ", m[i]);
}
printf("\n");

Python реалізація

Читаємо вхідні дані.

n = int(input())
lst = list(map(int,input().split()))

Знаходимо значення , яке було додано до всіх елементів початкового списку.

add = min(lst) // 2

Віднімаємо значення з кожного елемента списку .

res = [x - add for x in lst]

Виводимо відновлений (початковий) масив.

print (*res)