Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

SERWERY - Serwery

W pewnej firmie informatycznej znajdują się serwery gromadzące duże ilości danych. W związku z przebudową infrastruktury technicznej podjęto decyzję o przeniesieniu i umieszczeniu danych na jednym serwerze. Każde dwa serwery połączone są bezpośrednim łączem. Każdy z serwerów w danym momencie może albo wysyłać dane tylko do jednego serwera, albo odbierać dane tylko od jednego serwera. Każdy serwer może pomieścić dane znajdujące się na wszystkich serwerach. Cała operacja przenoszenia danych powinna zostać przeprowadzona tak, aby trwała jak najkrócej. Czas przenoszenia 1MB danych pomiędzy dwoma serwerami jest stały i wynosi 1s.

Zadanie

Napisz program, który dla zadanej konfiguracji serwerów (rozmiar przechowywanych danych) wyznaczy minimalną liczbę sekund, potrzebnych do wykonania tej operacji.

Wejście

Pierwsza linia wejścia zawiera liczbę zestawów danych C (1 ≤ C ≤ 100). W kolejnych wierszach wejścia znajdują się zestawy danych. Każdy z C zestawów danych składa się z dwóch wierszy. Pierwszy wiersz zestawu zawiera liczbę naturalną n określającą liczbę serwerów (1 ≤ n ≤ 100). Drugi wiersz zestawu danych zawiera n liczb całkowitych: a1, ..., an, oddzielonych pojedynczą spacją. Liczba ai (i = 1, ..., n; 0 ≤ ai < 231) określa rozmiar danych w MB przechowywanych przez i-ty serwer.

Wyjście

Dla każdego zestawu danych, w kolejnych liniach wyjścia, należy wypisać minimalną liczbę sekund potrzebnych do wykonania operacji przenoszenia danych na jeden serwer.

Przykład

Dla danych wejściowych:
2
4
4 10 8 3
2
1 1
poprawną odpowiedzią jest:
15
1

Dodane przez:Robert Rychcicki
Data dodania:2008-11-21
Limit czasu wykonania programu:0.5s
Limit długości kodu źródłowego50000B
Limit pamięci:1536MB
Cluster: Cube (Intel G860)
Języki programowania:CPP
Pochodzenie:OPSS - II Internetowe Mistrzostwa Polski w Programowaniu