#include<iostream>
#include<string.h>
using namespace std;
struct Node
{
int j;
int r;
}d[1005];
int dp[1005][1005];
int main()
{
int n,m,k,s;
while(cin>>n>>m>>k>>s)
{
memset(dp,0,sizeof(dp));
int i,j,k1;
for(i=1;i<=k;i++)
cin>>d[i].j>>d[i].r;
for(i=1;i<=m;i++)
{
for(j=1;j<=s;j++)
for(k1=1;k1<=k;k1++)
{
if(d[k1].r<=i)
{
int a=dp[i][j];
int b=dp[i-d[k1].r][j-1]+d[k1].j;
dp[i][j]=a>b?a:b;
}
}
if(dp[i][s]>=n)break;
}
cout<<m-i<<endl;
}
return 0;
}
hdu 2159 FATE
最新推荐文章于 2021-08-03 20:39:02 发布