#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n,p,s,w[1010],v[1010],maxw;
ll dp[1010];
int main(){
cin>>n>>p>>s;
for(int i=1;i<=n;i++){
cin>>w[i]>>v[i];
maxw=max(maxw,w[i]);
}
for(int k=1;k<=maxw;k++){
memset(dp,0,sizeof(dp));
for(int i=1;i<=n;i++){
for(int j=s;j>=0;j--){
if(j>=w[i]&& k>=w[i]){
dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
}
}
}
if(dp[s]>=p){
cout<<k;
return 0;
}
}
cout<<"No Solution!";
return 0;
}
我把所有样例全测了,卡在第四个点,下载数据完了之后还是对的