-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMinimumCostToCut.java
More file actions
38 lines (29 loc) · 864 Bytes
/
MinimumCostToCut.java
File metadata and controls
38 lines (29 loc) · 864 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package Greedy;
import java.util.Arrays;
public class MinimumCostToCut {
public static int minimumCostOfBreaking(int[] X, int[] Y, int m, int n) {
int res = 0;
Arrays.sort(X);
Arrays.sort(Y);
int horizontalPieces = 1, verticalPieces = 1;
int i = m - 1, j = n - 1;
while (i >= 0 && j >= 0) {
if (X[i] > Y[j]) {
res += X[i] * verticalPieces;
horizontalPieces++;
i--;
} else {
res += Y[j] * horizontalPieces;
verticalPieces++;
j--;
}
}
int total = 0;
while (i >= 0) total += X[i--];
res += total * verticalPieces;
total = 0;
while (j >= 0) total += Y[j--];
res += total * horizontalPieces;
return res;
}
}