bdfz_2024_summer/day13/P1855/P1855.cpp

44 lines
861 B
C++

#include <algorithm>
#include <cctype>
#include <cstdio>
#include <iostream>
#include <ostream>
using namespace std;
const int MAX = 200+5;
int n,M,T;
int m[MAX],t[MAX];
int readint();
int dp[MAX][MAX];
int main(){
n=readint(),M=readint(),T=readint();
for(int i=1;i<=n;i++){
m[i]=readint(),t[i]=readint();
}
for(int i=1;i<=n;i++){
for(int j=M;j>=1;j--){
for(int k=T;k>=1;k--){
dp[j][k] = dp[j][k];
if(j>=m[i]&&k>=t[i]){
dp[j][k] = max(dp[j][k],dp[j-m[i]][k-t[i]]+1);
}
}
}
}
cout<<dp[M][T]<<endl;
}
int readint(){
int x=0,w=1;
char ch=0;
while(!isdigit(ch)){
if(ch=='-')w=-1;
ch=getchar();
}
while(isdigit(ch)){
x=x*10+(ch-'0');
ch=getchar();
}
return x*w;
}