1
+ import java .io .*;
2
+
3
+ public class YJ_2073 {
4
+ public static void main (String [] args ) throws IOException {
5
+ BufferedReader br = new BufferedReader (new InputStreamReader (System .in ));
6
+ String [] DP = br .readLine ().split ("\\ s" );
7
+ int D = Integer .parseInt (DP [0 ]);
8
+ int P = Integer .parseInt (DP [1 ]);
9
+
10
+ int [] length = new int [P ];
11
+ int [] capacity = new int [P ];
12
+ for (int i =0 ; i <P ; i ++){
13
+ String [] data = br .readLine ().split ("\\ s" );
14
+ length [i ] = Integer .parseInt (data [0 ]);
15
+ capacity [i ] = Integer .parseInt (data [1 ]);
16
+ }
17
+
18
+ int [] dp = new int [D +1 ]; //dp[특정거리] = 최대 용량
19
+ dp [0 ] = Integer .MAX_VALUE ; //초기 상태에서의 최소 용량을 설정하기 위해서 최대 정수를 설정
20
+
21
+ // 특정 거리에 만들 수 있는 수도관(여러 파이프들로 구성) 중 가장 큰 용량 구하기
22
+ for (int i =0 ; i <P ; i ++){
23
+ for (int distance =D ; distance >=length [i ]; distance --){
24
+ //특정 거리에 만들 수 있는 수도관(여러 파이프들로 구성) 중 가장 큰 용량 구하기
25
+ dp [distance ] = Math .max (dp [distance ], Math .min (capacity [i ],dp [distance -length [i ]]));
26
+ }
27
+ }
28
+
29
+ System .out .println (dp [D ]);
30
+ }
31
+ }
0 commit comments