#include <bits/stdc++.h>
using namespace std;
int dp[(int)(5e8+10)];
int main(){
int n,l;
cin>>n>>l;
int w[n],v[n],W=0;
for(int i=0;i<n;i++){
cin>>w[i]>>v[i];
W+=w[i];
}
for(int i=0;i<n;i++){
for(int j=W;j;j--){
if(j>=w[i]){
dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
}
else{
dp[j]=dp[j];
}
}
}
for(int i=0;i<W;i++){
if(dp[i]>=l){
cout<<i;
return 0;
}
}
cout<<"no solution";
return 0;
}
为什么MLE??