#include<bits/stdc++.h> const int N=100+10; const int T=5000; using namespace std; int n,t,k,ans; int v[N],h[N],f[T]; int now; //如果不考虑大的,x=t-h[i] //考虑大的之后,0.8*x=t-h[i] //x=(t-h[i])*1.25 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=h[i]; j<=t*5/4; j++) f[j]=max(f[j],f[j-h[i]]+v[i]); //完全背包 ans=f[t];//ans初始化为f[t] for(int i=1; i<=n; i++) { if(h[i]<k) continue;//不是大奶酪就不做 now=v[i]+f[(t-h[i])*5/4];//用now求当前答案 ans=max(ans,now);//更新 } cout<<ans<<endl; return 0; }