Skip to content

Commit 04d7bc1

Browse files
authored
Merge pull request #2001 from AlgorithmWithGod/LiiNi-coder
[20260307] BOJ / G5 / 빚 / 이인희
2 parents 79ddbd2 + 74e5a3b commit 04d7bc1

1 file changed

Lines changed: 47 additions & 0 deletions

File tree

LiiNi-coder/202603/07 BOJ 빚.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
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+
```

0 commit comments

Comments
 (0)