C++; Pascal; Java;Python Серик и Берик собрали все яблоки в саду. Однако, сезон яблок подходит к концу и в саду осталось очень мало яблок. Вместе они собрали всего N корзинок с яблоками. По этой причине, ребята решают поделить все собранные яблоки. Однако, Серику не понравилось предложение Берика поделить все количество яблок поровну. В этом случае кому-то может достаться больший вес яблок, так как, у каждого яблока разный вес. Серик предложил поделить яблоки, в каждой корзинке, с помощью монетки. Берик и Серик выложили яблоки из каждой корзинки перед собой в ряд. Таким образом, получилось N рядов с корзинками. Для каждого ряда, ребята поочередно бросают монетку: если монетка падает решкой, то бросивший ее мальчик берет первое яблоко в ряду. Если выпадает орел, то берут последнее яблоко в ряду. Каков будет общий вес яблок из каждой который наберет Серик, если он бросает монетку первым?
Для решения этой задачи нам нужно учитывать вес каждого яблока в каждой корзинке.
Пусть веса яблок в каждой корзине заданы как массивы weights[N], где weights[i] - массив весов яблок в i-ой корзине.
Для каждой корзины построим массив сумм весов яблок prefixSum[N], где prefixSum[i] - сумма весов яблок до i-ого яблока в корзине. То есть prefixSum[i] = prefixSum[i-1] + weights[i].
Затем, для каждой корзины, если количество яблок N четное, то суммарный вес яблок, которые возьмет Серик, будет равен prefixSum[N]/2, так как он бросает монетку первым и будет брать первое яблоко в каждом ряду.
Если количество яблок N нечетное, то суммарный вес яблок, которые возьмет Серик, будет равен prefixSum[N]//2 + weights[N//2], так как он возьмет яблоко в середине суммы яблок.
Таким образом, общий вес яблок из каждой корзины, который наберет Серик, будет сумма весов, рассчитанных как описано выше, для каждой корзины.
Для решения этой задачи нам нужно учитывать вес каждого яблока в каждой корзинке.
Пусть веса яблок в каждой корзине заданы как массивы weights[N], где weights[i] - массив весов яблок в i-ой корзине.
Для каждой корзины построим массив сумм весов яблок prefixSum[N], где prefixSum[i] - сумма весов яблок до i-ого яблока в корзине. То есть prefixSum[i] = prefixSum[i-1] + weights[i].
Затем, для каждой корзины, если количество яблок N четное, то суммарный вес яблок, которые возьмет Серик, будет равен prefixSum[N]/2, так как он бросает монетку первым и будет брать первое яблоко в каждом ряду.
Если количество яблок N нечетное, то суммарный вес яблок, которые возьмет Серик, будет равен prefixSum[N]//2 + weights[N//2], так как он возьмет яблоко в середине суммы яблок.
Таким образом, общий вес яблок из каждой корзины, который наберет Серик, будет сумма весов, рассчитанных как описано выше, для каждой корзины.