C/C++

Помогите решить задачку пжпж условие на фото. Код необязателен, главное идею подскажите пжпж

Итак. Включаем модуль стандартной логики....
1) Каждый из элементов массива d должен быть чётным и каждый из элементов массива d должен повторяться два раза, не больше не меньше. То есть должны выполняться условия: d[i] = d[j] i<>j, и d[i]//2 == 0 для любого i

Выключаем модуль стандартной логики, включаем модуль математики
Мы по отдельности знаем элементы массива d, которые являются суммами из массива a. итак, если красиво расписать как получаются элементы массива d, то:
Разность d[i+1] и d[i] элемента будет равна 2i*(a[i+1 - a[i]]).

Пример::
Имеем масив b:
b = [24, 14, 14, 24, 16, 16]
Образованный массивом a = [-4, 1, -1, 4, 2, -2]. Элементы массива a:[1,2,4]
элементы массива d: [14,16,24]
Можно сказать, что d[2]-d[1] = 2*(a[2]-a[1]) = 2*(2-1) = 2
и d[3]-d[2] = 2*2*(a[3]-a[2]) = 4*(4-2) = 8
Для восстановления массива a единственным образом этого не хватит: из n-1 уравнения можно достать n-1 переменную. И n-ую переменную нам поможет определить вся сумма массива d.

Полная сумма массива d - это 2*сумм{ (2i-1)*a[i]} от 1 до n

Выключаем модуль математики.

Итак, если мы имеем нейкий массив, то надо проверить пункт 1, затем попытаться решить составленную систему в целых числах.
(может можно и проще, но я не придумал)
Егор Дроздов
Егор Дроздов
15 569
Лучший ответ