브루트포스 방식으로 모든 경우를 다 계산해주시면 됩니다.
N개 중에 뽑는 갯수가 정해져있지 않기때문에 조합이 아닌 부분집합으로 재료를 고를때마다 ans를 갱신해줍니다.
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
39
40
|
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static StringTokenizer st;
static long list[][];
static long ans = Long.MAX_VALUE;
static int N;
static void func(int idx, long a, long b) {
if (idx > 0)
ans = Math.min(ans, Math.abs(a - b));
if (idx == N)
return;
for (int i = idx; i < N; i++) {
func(i + 1, a * list[i][0], b + list[i][1]);
}
}
static void input() throws Exception {
st = new StringTokenizer(br.readLine());
N = Integer.parseInt(st.nextToken());
list = new long[N][2];
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
list[i][0] = Long.parseLong(st.nextToken());
list[i][1] = Long.parseLong(st.nextToken());
}
}
public static void main(String[] args) throws Exception {
input();
func(0, 1, 0);
System.out.println(ans);
}
}
|
cs |
'algorithm > Bruteforce' 카테고리의 다른 글
boj 17281 ⚾ (0) | 2021.02.16 |
---|---|
boj 3040 백설 공주와 일곱 난쟁이 (0) | 2021.02.15 |
boj 2422 한윤정이 이탈리아에 가서 아이스크림을 사먹는데 (0) | 2021.01.29 |
boj 1018 체스판 다시 칠하기 (0) | 2021.01.29 |
boj 15686 치킨 배달 (0) | 2021.01.22 |