小墨在努力!!
吗了个b的。。。。。
#include <stdio.h>
#include <string.h>
int main()
{
int n ,m ,k ,s ,t ,i ,j ,f[105][105] ,a[105] ,b[105];
while(scanf("%d %d %d %d",&n ,&m ,&k ,&s) != EOF)
{
memset(f ,0 ,sizeof(f));
for(i = 1 ;i <= k ;i++)
scanf("%d %d",&a[i] ,&b[i]);
for(j = 1 ;j <= s ;j++)
{
for(t = 1 ;t <= m ;t++)
{
int max = -1;
for(i = 1 ;i <= k ;i++)
{
if(t >= b[i] && f[j - 1][t - b[i]] + a[i] > max)
max = f[j - 1][t - b[i]] + a[i];
}
f[j][t] = max;
}
}
for(i = 1 ;i <= m ;i++)
if(f[s][i] >= n) break;
if(i <= m) printf("%d\n",m - i);
else printf("-1\n");
}
return 0;
}

 

posted on 2012-03-10 17:31  小墨在努力!!  阅读(164)  评论(0编辑  收藏  举报