Надежда Приходько
Надежда Приходько

алгоритм разделения массива на две части с равными суммами

Дан масcив с n-ым кол-вом элементов (как четное так и нечетное) . Можно ли этот массив разделить на две части так, чтобы сумма элементов в обоих частях была равной. Перемещать элементы массива нельзя. Пример N=10 сумма от а1 до а5=а6 до а10? или а2 до а6=а7 до а7 и так далее по кругу?

По кругу-значит берем элементы 1,2и3,4. Потом 4,1 и 2,3

Ирина Нуйкина
Ирина Нуйкина

заводим 2 указателя и 2 переменные -аккамулятора.

берём 1 элемент, добаляем его к "левой" сумме, сдвигаем "левый указатель" на первый элемент.
последний элемент, добавляем его к правой сумме, ставим правй указатель на последний элемент
проверяем какая из сумм меньше (левая или правая) и добавляем к ней свой элемент (левый или правый) , сдвигаем соответствующий указатель настречу антагонисту.
повторяем предыдущий шаг, пока левый указатель не оказывется на единицу меньше правого (кончились нерасписанные элементы)
смотрим суммы. если равны - удалось разделить, не равны - нельзя разделить без перестановок.

ЛМ
Лена Морозова

что значит "по кругу"??? Можно взять часть (8,9,10,1,2)?

Похожие вопросы
Разделение изображения на равные части.
Сумма елементов массива паскаль
алгоритм для интерполирования полиномом ньютона для разделенных разностей. помогите с алгоритмом, пожалуйста
Раздели 188 на две равные части, каждая из которых равна 100.
распечатать все элементы массива у которых сумма цифр равна М. В блоге схем
Алгоритм перестановки массива (ассемблер)
как поделить диск на две равные части?
Сумма элементов массива в паскаль.
Разделение отпуска на части
Сферический астероид разделился на две равные сферические части.