File tree Expand file tree Collapse file tree 1 file changed +46
-0
lines changed
Expand file tree Collapse file tree 1 file changed +46
-0
lines changed Original file line number Diff line number Diff line change 1+ ``` java
2+ import java.io.BufferedReader ;
3+ import java.io.InputStreamReader ;
4+ import java.util.StringTokenizer ;
5+
6+ public class Main {
7+
8+ static int C , N ;
9+ static int [] cost, customer;
10+ static int [] dp;
11+ static final int INF = 100000 ;
12+
13+ public static void main (String [] args ) throws Exception {
14+ BufferedReader br = new BufferedReader (new InputStreamReader (System . in));
15+ StringTokenizer st = new StringTokenizer (br. readLine());
16+ C = Integer . parseInt(st. nextToken());
17+ N = Integer . parseInt(st. nextToken());
18+ cost = new int [N ];
19+ customer = new int [N ];
20+ for (int i = 0 ; i < N ; i++ ) {
21+ st = new StringTokenizer (br. readLine());
22+ cost[i] = Integer . parseInt(st. nextToken());
23+ customer[i] = Integer . parseInt(st. nextToken());
24+ }
25+
26+ dp = new int [INF ];
27+ for (int i = 0 ; i < INF ; i++ ) {
28+ dp[i] = 0 ;
29+ }
30+
31+ for (int i = 0 ; i < N ; i++ ) {
32+ for (int j = cost[i]; j < INF ; j++ ) {
33+ dp[j] = Math . max(dp[j], dp[j - cost[i]] + customer[i]);
34+ }
35+ }
36+ int answer = Integer . MAX_VALUE ;
37+ for (int i = 0 ; i < INF ; i++ ) {
38+ if (dp[i] >= C ) {
39+ answer = i;
40+ break ;
41+ }
42+ }
43+ System . out. println(answer);
44+ }
45+ }
46+ ```
You can’t perform that action at this time.
0 commit comments