Нужно решение C для приведенной ниже проблемы
Заявление
Кришна очень любит конфеты, поэтому всякий раз, когда он их получает, он хранит их так, чтобы он мог съесть их позже, когда захочет.
Недавно он получил N коробок конфет, каждая из которых содержит конфеты Ci, где Ci представляет собой общее количество конфет в I-й коробке. Кришна хочет хранить их в одной коробке. Единственное ограничение состоит в том, что он может выбрать любые две коробки и хранить их совместное содержимое только в пустой коробке. Предположим, что имеется бесконечное число пустых ящиков.
За один раз он может взять любые две коробки для передачи, и если обе коробки, скажем, содержат X и Y количество конфет соответственно, то это займет у него ровно X+Y секунд времени. Поскольку он очень хочет собрать их все, он подошел к вам, чтобы сказать ему минимальное время, за которое все конфеты могут быть собраны.
входной формат:
Первой строке входных данных находится количество теста Т
Каждый тестовый случай состоит из двух входных данных
Первый вход тестового случая-это количество ящиков N
Второй вход-это N целых чисел, разделенных пробелами, обозначающими количество конфет в каждой коробке
выходной формат:
Выведите минимальное требуемое время в секундах для каждого тестового случая. Распечатайте каждый вывод на новой строке.
Ограничения:
1 ≤T≤10
1 ≤N≤ 10000
1 ≤ [конфеты в каждой коробке] ≤ 100009
Вход и выход образца
СНО. Объяснение Ввода Вывода
1.
1
4
1 2 3 4
o/p:19
4 коробки, каждая из которых содержит 1, 2, 3 и 4 конфеты соответственно.
Добавление 1 + 2 в новую коробку занимает 3 секунды
Добавление 3 + 3 в новую коробку занимает 6 секунд
Добавление 4 + 6 в новую коробку занимает 10 секунд
Следовательно, общее затраченное время составляет 19 секунд. Могут быть и другие комбинации, но общее время не опускается ниже 19 секунд.
2.
1
5
1 2 3 4 5
o/p:33
5 коробок, каждая из которых содержит 1, 2, 3, 4 и 5 конфет соответственно.
Добавление 1 + 2 в новую коробку занимает 3 секунды
Добавление 3 + 3 в новую коробку занимает 6 секунд
Добавление 4 + 5 в новую коробку занимает 9 секунд
Добавление 6 + 9 в новую коробку занимает 15 секунд
Следовательно, общее затраченное время составляет 33 секунды. Могут быть и другие комбинации, но общее время не опускается ниже 33 секунд.
Что я уже пробовал:
#include <stdio.h> int main(){ int i,t; scanf("%d",&t); for(i=0; i<t;i++) int n,j,time=0,a[10001],sum=0,add=0; scanf("%d",&n); for(j=0; j<n;j++) scanf("%d",&a[j]); } for(j=0;j<n;j++){ time=a[j]+a[j+1]; sum=time+sum; } printf("%d",sum); } return 0; }
[no name]
Пустая трата времени на публикацию здесь. Это не кодовая служба.
Member 12694317
Это та проблема, которая была задана вчера на конкурсе, и я не мог этого сделать that...so просто хотел знать, как ее решить.
Richard MacCutchan
Это математическая задача, поэтому вам нужно сначала разобраться в этом. Как только вы это сделаете, то превратить его в код будет легко.