Advertisement
vov44k

Untitled

Oct 9th, 2022
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.41 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.Scanner;
  3.  
  4. public class Main {
  5.  
  6.     public static void main(String[] args) throws IOException {
  7.         Scanner in = new Scanner(System.in);
  8.         if (args.length > 0 && args[0].equals("LOCAL")) {
  9.             in = new Scanner(new File("data/in.txt"));
  10.             System.setOut(new PrintStream(new FileOutputStream("data/out.txt")));
  11.         }
  12.  
  13.         int c = in.nextInt(), n = in.nextInt(); // c -- максимальная вместимость рюкзака, n -- количество предметов
  14.  
  15.         int[] weight = new int[n + 1]; // вес предмета
  16.         int[] cost = new int[n + 1]; // стоимость предмета
  17.  
  18.         int[][] dp = new int[n + 1][c + 1]; // dp[i][j] -- максимальная стоимость, которую можно набрать, если взять первые i предметов и вместимость рюкзака равна j
  19.  
  20.         for (int i = 1; i <= n; i++) {
  21.             weight[i] = in.nextInt();
  22.             cost[i] = in.nextInt();
  23.         }
  24.  
  25.         for (int i = 1; i <= n; i++)
  26.             for (int j = 1; j <= c; j++)
  27.                 if (j >= weight[i])
  28.                     dp[i][j] = Math.max(dp[i - 1][j], dp[i - 1][j - weight[i]]);
  29.                 else
  30.                     dp[i][j] = dp[i - 1][j];
  31.  
  32.         System.out.println(dp[n][c]);
  33.  
  34.        
  35.  
  36.         in.close();
  37.     }
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement