Pagini recente » Borderou de evaluare (job #2821743) | Borderou de evaluare (job #2601392) | Cod sursa (job #1990058)
#include <iostream>
#include<cstdio>
int d[10001];
struct ura{
int x, y;
};
ura v[5001];
using namespace std;
int main() {
int i, n, g, j, max;
freopen("rucsac.in", "r",stdin);
freopen("rucsac.out", "w",stdout);
scanf( "%d%d", &n, &g);
for(i=1;i<=n;i++) {
scanf("%d%d", &v[i].x, &v[i].y);
}
for(i=1;i<=n;i++){
for(j=g;j>=v[i].x;j--) {
if(d[j-v[i].x]!=0 && d[j-v[i].x]+v[i].y>d[j]) {
d[j]=d[j-v[i].x]+v[i].y;
}
}
if(d[v[i].x]<v[i].y) {
d[v[i].x]=v[i].y;
}
}
max=0;
for(i=1;i<=g;i++) {
if(d[i]>max) {
max=d[i];
}
}
printf( "%d", max);
return 0;
}