玄关,WA,样例都过了
#include<iostream>
using namespace std;
int n,l,w[510],v[510],dp[510][510];
int main()
{
cin>>n>>l;
for(int i=1;i<=n;i++)
cin>>w[i]>>v[i];
for(int i=1;i<=n;i++)
{
for(int j=1;j<=l;j++)
{
if(j>=w[i])
dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+v[i]);
else
dp[i][j]=dp[i-1][j];
}
}
bool t=false;
for(int i=1;i<=l;i++)
{
if(dp[n][i]>l)
{
printf("%d",i);
t=true;
break;
}
}
if(!t) printf("no solution");
return 0;
}