import java.util.Scanner;
public class acm2$01_yh {
public static void main(String[] args) {
//优化的01背包
Scanner sc=new Scanner(System.in);
int N=sc.nextInt(),V=sc.nextInt();
int input[][]=new int[N][2];
for(int i=0;i<N;i++){
input[i][0]=sc.nextInt();
input[i][1]=sc.nextInt();
}
int []dp=new int[V+1];
for(int i=1;i<=N;i++){
for(int j=V;j>=input[i-1][0];j--){
dp[j]=Math.max(dp[j],dp[j-input[i-1][0]]+input[i-1][1]);
}
}
System.out.println(dp[V]);
}
}
如果对空间优化有疑问的可以留言,博主看到会解答的。