提交时间:2024-05-25 14:50:09

运行 ID: 148792

#include<bits/stdc++.h> using namespace std; int n,s,w[10005],l[10005],dp[10005],ans=0; int main(){ memset(dp,0,sizeof(dp)); cin>>n>>s; for(int i=1;i<=n;i++){ cin>>w[i]>>l[i]; } int q=0; for(int i=1;i<=n;i++){ for(int k=l[i];k<=s;k++){ if(dp[k-l[i]]+w[i] > dp[k]){ dp[k] = dp[k-l[i]]+w[i]; ans += q; q = 0; } q = max(q,w[i]); } } cout<<ans<<endl; return 0; }