Skip to content

Commit f932a01

Browse files
authored
[20251015] BOJ / G1 / 택배 / 이준희
1 parent 8481f2a commit f932a01

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
```java
2+
import java.io.*;
3+
import java.util.*;
4+
5+
public class Main {
6+
public static void main(String[] args) throws IOException {
7+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
8+
StringTokenizer st = new StringTokenizer(br.readLine());
9+
int n = Integer.parseInt(st.nextToken());
10+
int c = Integer.parseInt(st.nextToken());
11+
int m = Integer.parseInt(br.readLine());
12+
int[][] express = new int[m][3];
13+
14+
for (int i = 0; i < m; i++) {
15+
st = new StringTokenizer(br.readLine());
16+
int from = Integer.parseInt(st.nextToken());
17+
int to = Integer.parseInt(st.nextToken());
18+
int box = Integer.parseInt(st.nextToken());
19+
express[i][0] = from;
20+
express[i][1] = to;
21+
express[i][2] = box;
22+
}
23+
24+
Arrays.sort(express, (a, b) -> {
25+
if (a[1] == b[1]) return a[0] - b[0];
26+
return a[1] - b[1];
27+
});
28+
29+
int[] load = new int[n + 1];
30+
int result = 0;
31+
32+
for (int i = 0; i < m; i++) {
33+
int from = express[i][0];
34+
int to = express[i][1];
35+
int box = express[i][2];
36+
37+
int maxbox = 0;
38+
for (int j = from; j < to; j++) {
39+
maxbox = Math.max(maxbox, load[j]);
40+
}
41+
42+
int canbox = Math.min(c - maxbox, box);
43+
if (canbox <= 0) continue;
44+
45+
for (int j = from; j < to; j++) {
46+
load[j] += canbox;
47+
}
48+
49+
result += canbox;
50+
}
51+
52+
System.out.println(result);
53+
}
54+
}
55+
```

0 commit comments

Comments
 (0)