File tree 1 file changed +41
-0
lines changed
1 file changed +41
-0
lines changed Original file line number Diff line number Diff line change
1
+ import java .io .*;
2
+ import java .util .*;
3
+
4
+ public class Main {
5
+
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 S = Integer .parseInt (st .nextToken ());
11
+ int M = Integer .parseInt (st .nextToken ());
12
+ int [] volume = new int [N + 1 ];
13
+ st = new StringTokenizer (br .readLine ());
14
+ for (int i = 1 ; i <= N ; i ++) {
15
+ volume [i ] = Integer .parseInt (st .nextToken ());
16
+ }
17
+ boolean [][] d = new boolean [N + 1 ][M + 1 ];
18
+ d [0 ][S ] = true ;
19
+ for (int i = 1 ; i <= N ; i ++) {
20
+ for (int vol = 0 ; vol <= M ; vol ++) {
21
+ // 이전에 곡에서 연주 가능한 볼륨일 경우
22
+ if (d [i - 1 ][vol ]) {
23
+ if (vol + volume [i ] <= M ) {
24
+ d [i ][vol + volume [i ]] = true ;
25
+ }
26
+ if (vol - volume [i ] >= 0 ) {
27
+ d [i ][vol - volume [i ]] = true ;
28
+ }
29
+ }
30
+ }
31
+ }
32
+ int answer = -1 ;
33
+ for (int i = M ; i >= 0 ; i --) {
34
+ if (d [N ][i ]) {
35
+ answer = i ;
36
+ break ;
37
+ }
38
+ }
39
+ System .out .println (answer );
40
+ }
41
+ }
You can’t perform that action at this time.
0 commit comments