Skip to content

Commit 9d09345

Browse files
authored
Merge pull request #1500 from AlgorithmWithGod/JHLEE325
[20251124] BOJ / G4 / 서울에서 경산까지/ 이준희
2 parents 1a1011f + 2a73540 commit 9d09345

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
```java
2+
import java.io.*;
3+
import java.util.*;
4+
5+
public class Main {
6+
static final int INF = -987654321;
7+
8+
public static void main(String[] args) throws Exception {
9+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
10+
StringTokenizer st = new StringTokenizer(br.readLine());
11+
12+
int N = Integer.parseInt(st.nextToken());
13+
int T = Integer.parseInt(st.nextToken());
14+
15+
int[] walk = new int[N];
16+
int[] walkMoney = new int[N];
17+
int[] bike = new int[N];
18+
int[] bikeMoney = new int[N];
19+
20+
for (int i = 0; i < N; i++) {
21+
st = new StringTokenizer(br.readLine());
22+
walk[i] = Integer.parseInt(st.nextToken());
23+
walkMoney[i] = Integer.parseInt(st.nextToken());
24+
bike[i] = Integer.parseInt(st.nextToken());
25+
bikeMoney[i] = Integer.parseInt(st.nextToken());
26+
}
27+
28+
int[][] dp = new int[N + 1][T + 1];
29+
for (int[] row : dp) Arrays.fill(row, INF);
30+
dp[0][0] = 0;
31+
32+
for (int i = 0; i < N; i++) {
33+
for (int t = 0; t <= T; t++) {
34+
if (dp[i][t] == INF) continue;
35+
36+
if (t + walk[i] <= T) {
37+
dp[i + 1][t + walk[i]] = Math.max(dp[i + 1][t + walk[i]], dp[i][t] + walkMoney[i]);
38+
}
39+
40+
if (t + bike[i] <= T) {
41+
dp[i + 1][t + bike[i]] = Math.max(dp[i + 1][t + bike[i]], dp[i][t] + bikeMoney[i]);
42+
}
43+
}
44+
}
45+
46+
int res = 0;
47+
for (int t = 0; t <= T; t++) {
48+
res = Math.max(res, dp[N][t]);
49+
}
50+
51+
System.out.println(res);
52+
}
53+
}
54+
```

0 commit comments

Comments
 (0)