1022. 宠物小精灵之收服
题目链接https://www.acwing.com/problem/content/1024/
#include<iostream>
#include<algorithm>
using namespace std;
int n,m,k;
int dp[1010][510];
int main(){
cin>>n>>m>>k;
int a,b;
m--;//易错,就是提前避免面恰好体力为0的时刻
for(int i=1;i<=k;i++){
cin>>a>>b;
for(int j=n;j>=a;j--){
for(int z=m;z>=b;z--){
dp[j][z]=max(dp[j][z],dp[j-a][z-b]+1);
}
}
}
int ans=dp[n][m];
int i=m;
while(i>=0&&ans==dp[n][i]) i--;
cout<<ans<<" "<<m-i;
return 0;
}