2015-05-10 2 views
-1

У меня есть массив, длина которого точно делится на 3, и все элементы находятся в порядке убывания. Если мы группируем элементы массива на 3 и берем его сумму, я должен получить максимальные значения.Переустановка элементов массива, поэтому получите максимальную сумму

Например, INT [] вход = {9,8,7,6,5,4}

Теперь, если сгруппировать элементы массива 987 и 654 мы получаем сумму 1641

Мне нужно переставить элементы таким образом, чтобы получить максимальную сумму.

Таким образом, выходной массив должен быть следующим: ИНТ [] выход = {9,7,5,8,6,4}

Теперь, если сгруппировать элементы массива 975 и 864 мы получаем сумму от 1839.

Я пробовал, но не смог его получить, может кто-нибудь помочь мне с логикой.

+0

Что вы пытались? Что сработало? А что нет? – bentank

+0

Я использовал этот код, но не работал. –

+0

для (i = 0; i

ответ

0

Я написал его в Python3. Точка в наиболее однородном распределении чисел возможна.

inpArr = [5,2,8,4,9,6,7,1,3] 

sortedInpArr = sorted(inpArr, reverse=True) 
print(sortedInpArr) 

buffNum = int(len(sortedInpArr)/3) 

for n in range(0, buffNum): 
    for i in range(0, len(sortedInpArr)): 
     if i % buffNum == n: 
      print(sortedInpArr[i], end="") 
    print() # new line