Lang:Java
Edit123456789101112131415161718192021222324252627282930import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int N = in.nextInt();int M = in.nextInt();int[] need = new int[N+1];int[] value = new int[N+1];int[] data = new int[M+1];for(int i = 1; i <= N; i++) {need[i] = in.nextInt();value[i] = in.nextInt();}for(int i = 0; i <= M; i++) {data[i] = 0;}for(int i = 0; i <= N; i ++) {for(int j = M; j >= need[i]; j--) {if(need[i]<j) {data[j] = Math.max(data[j-need[i]]+value[i], data[j]);}}}System.out.println(data[M]);}}