File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ ``` java
2+ import java.io.BufferedReader ;
3+ import java.io.IOException ;
4+ import java.io.InputStreamReader ;
5+ import java.util.Arrays ;
6+ import java.util.StringTokenizer ;
7+
8+ public class Main {
9+ public static void main (String [] args ) throws IOException {
10+ BufferedReader br = new BufferedReader (new InputStreamReader (System . in));
11+ int t = Integer . parseInt(br. readLine());
12+ StringBuilder sb = new StringBuilder ();
13+
14+ while (t-- > 0 ){
15+ StringTokenizer st = new StringTokenizer (br. readLine());
16+ int n = Integer . parseInt(st. nextToken());
17+ long [] arr = new long [n];
18+
19+ for (int i = 0 ; i < n; i++ ){
20+ arr[i] = Long . parseLong(st. nextToken());
21+ }
22+ Arrays . sort(arr);
23+
24+ long [] prefix = new long [n + 1 ];
25+ for (int i = 1 ; i <= n; i++ ) {
26+ prefix[i] = prefix[i - 1 ] + arr[i - 1 ];
27+ }
28+
29+ long totalSum = 0 ;
30+ for (int k = 2 ; k <= n; k++ ){
31+ long minCost = Long . MAX_VALUE ;
32+ for (int j = k; j <= n; j++ ){
33+ long sum = prefix[j] - prefix[j- k];
34+ long cost = (arr[j- 1 ] * k) - sum;
35+ if (cost < minCost) {
36+ minCost = cost;
37+ }
38+ }
39+ totalSum += minCost;
40+ }
41+ sb. append(totalSum). append(' \n ' );
42+ }
43+
44+ System . out. print(sb);
45+ }
46+ }
47+ ```
You can’t perform that action at this time.
0 commit comments