1
+ package backjoon ;
2
+ // https://www.acmicpc.net/problem/14888
3
+ // μ°μ°μ λΌμλ£κΈ°
4
+
5
+ import java .io .BufferedReader ;
6
+ import java .io .IOException ;
7
+ import java .io .InputStreamReader ;
8
+ import java .util .StringTokenizer ;
9
+
10
+ public class _14888 {
11
+ public static int N ; // μ£Όμ΄μ§ μ«μ κ°μ
12
+ public static int [] number ; // μ«μ
13
+ public static int [] operator = new int [4 ]; // λ§μ
, λΊμ
, κ³±μ
, λλμ
κ°κ°μ κ°μ
14
+ public static int MAX = Integer .MIN_VALUE ; // μ΅λκ°
15
+ public static int MIN = Integer .MAX_VALUE ; // μ΅μκ°
16
+
17
+ public static void main (String [] args ) throws IOException {
18
+ BufferedReader br = new BufferedReader (new InputStreamReader (System .in ));
19
+ // memory 13680 runtime 84
20
+ N = Integer .parseInt (br .readLine ());
21
+ number = new int [N ];
22
+
23
+ // μ«μλ€ λ°°μ΄μ λ£κΈ°
24
+ StringTokenizer st = new StringTokenizer (br .readLine (), " " );
25
+ for (int i = 0 ; i < N ; i ++) {
26
+ number [i ] = Integer .parseInt (st .nextToken ());
27
+ }
28
+
29
+ // μ°μ°μ λ°°μ΄μ λ£κΈ°
30
+ st = new StringTokenizer (br .readLine (), " " );
31
+ for (int i = 0 ; i < 4 ; i ++) {
32
+ operator [i ] = Integer .parseInt (st .nextToken ());
33
+ }
34
+
35
+ dfs (number [0 ], 1 );
36
+
37
+ System .out .println (MAX );
38
+ System .out .println (MIN );
39
+
40
+ }
41
+
42
+ public static void dfs (int num , int idx ) {
43
+ if (idx == N ) {
44
+ MAX = Math .max (MAX , num );
45
+ MIN = Math .min (MIN , num );
46
+ return ;
47
+ }
48
+
49
+ for (int i = 0 ; i < 4 ; i ++) {
50
+ // μ°μ°μ κ°μκ° 1κ° μ΄μμΈ κ²½μ°
51
+ if (operator [i ] > 0 ) {
52
+
53
+ // ν΄λΉ μ°μ°μλ₯Ό 1 κ°μμν¨λ€.
54
+ operator [i ]--;
55
+
56
+ switch (i ) {
57
+
58
+ case 0 :
59
+ dfs (num + number [idx ], idx + 1 );
60
+ break ;
61
+ case 1 :
62
+ dfs (num - number [idx ], idx + 1 );
63
+ break ;
64
+ case 2 :
65
+ dfs (num * number [idx ], idx + 1 );
66
+ break ;
67
+ case 3 :
68
+ dfs (num / number [idx ], idx + 1 );
69
+ break ;
70
+
71
+ }
72
+ // μ¬κ·νΈμΆμ΄ μ’
λ£λλ©΄ λ€μ ν΄λΉ μ°μ°μ κ°μλ₯Ό 볡ꡬνλ€.
73
+ operator [i ]++;
74
+ }
75
+ }
76
+ }
77
+ }
78
+ /*
79
+ INPUT
80
+ 2
81
+ 5 6
82
+ 0 0 1 0
83
+
84
+ OUTPUT
85
+ 30
86
+ 30
87
+ */
0 commit comments