Skip to content

Commit b43fe19

Browse files
authored
Merge pull request #1109 from AlgorithmWithGod/suyeun84
[20251013] BOJ / G5 / 계란으로 계란치기 / 김수연
2 parents 08e262c + c4da44f commit b43fe19

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
```java
2+
import java.io.*;
3+
import java.util.*;
4+
5+
public class boj16987 {
6+
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
7+
static StringTokenizer st;
8+
static void nextLine() throws Exception { st = new StringTokenizer(br.readLine()); }
9+
static int nextInt() { return Integer.parseInt(st.nextToken()); }
10+
11+
static int N, answer = 0;
12+
public static void main(String[] args) throws Exception {
13+
nextLine();
14+
N = nextInt();
15+
Egg[] eggs = new Egg[N];
16+
for (int i = 0; i < N; i++) {
17+
nextLine();
18+
eggs[i] = new Egg(nextInt(), nextInt());
19+
}
20+
21+
dfs(0, eggs);
22+
System.out.println(answer);
23+
}
24+
25+
public static void dfs(int idx, Egg[] eggs) {
26+
if (idx == N) {
27+
int cnt = 0;
28+
for (int i = 0; i < N; i++) {
29+
if (eggs[i].s <= 0) cnt++;
30+
}
31+
answer = Math.max(answer, cnt);
32+
return;
33+
}
34+
if (eggs[idx].s < 0) dfs(idx+1, eggs);
35+
else {
36+
boolean flag = true;
37+
for (int i = 0; i < N; i++) {
38+
if (eggs[i].s <= 0 || idx == i) continue;
39+
flag = false;
40+
eggs[i].s -= eggs[idx].w;
41+
eggs[idx].s -= eggs[i].w;
42+
dfs(idx+1, eggs);
43+
eggs[i].s += eggs[idx].w;
44+
eggs[idx].s += eggs[i].w;
45+
}
46+
if (flag) dfs(idx+1, eggs);
47+
}
48+
}
49+
50+
static class Egg {
51+
int s, w;
52+
public Egg(int s, int w) {
53+
this.s = s;
54+
this.w = w;
55+
}
56+
}
57+
}
58+
59+
```

0 commit comments

Comments
 (0)