代码:
// // Created by 徐志远 on 2019-09-27. // //大奶酪上面是可以再放大奶酪的,也就是说大奶酪可以不只放一个,但只算一个 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; int N,T,K; #define MAXN 1010 #define MAXT 2010 int v[MAXN],h[MAXN]; int f[MAXT]; int main(){ cin>>N>>T>>K; for(int i=1;i<=N;i++){ cin>>v[i]>>h[i]; } for(int i =1;i<=N;i++){ for(int j = 0;j<=T*5/4;j++){ if(j>=h[i]){ f[j] = max(f[j],f[j-h[i]]+v[i]); } } } int ans = f[T]; for(int i = 1;i<=N;i++){ if(h[i]>=K){ ans = max(ans,f[(T-h[i])*5/4]+v[i]); } } cout<<ans<<endl; return 0; }