File tree Expand file tree Collapse file tree 1 file changed +41
-0
lines changed
Expand file tree Collapse file tree 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