Pagini recente » Cod sursa (job #2105620) | Cod sursa (job #3125644) | Cod sursa (job #2620678) | Cod sursa (job #820755) | Cod sursa (job #615522)
Cod sursa(job #615522)
#include <stdio.h>
#define G 10010
int n,g;
int a[G];
inline void adauga() {
int w,p;
scanf("%d%d",&w,&p);
for(int i=g-w; i>=0; --i) {
if(a[i]==0)
continue;
if(a[i+w] < a[i]+p)
a[i+w] = a[i]+p;
}
if(a[w] < p)
a[w] = p;
}
inline int rezultat() {
int r = 0;
for(int i=0; i<=g; ++i) {
if(r<a[i])
r = a[i];
}
return r;
}
int main() {
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
scanf("%d%d",&n,&g);
for(int i=0; i<n; ++i)
adauga();
printf("%d\n",rezultat());
return 0;
}