Pagini recente » Cod sursa (job #235978) | Cod sursa (job #723096) | Cod sursa (job #1545277) | Cod sursa (job #82306) | Cod sursa (job #1028547)
#include <cstdio>
#define nMax 5010
#define gMax 100010
#define max(a, b) ((a > b)?a:b)
using namespace std;
struct ceva{
int val;
int kg;
};
int n;
int g;
int s[nMax][gMax];
ceva a[nMax];
void citire(){
scanf("%d %d", &n, &g);
for (int i = 1; i <= n; ++i){
scanf("%d %d", &a[i].kg, &a[i].val);
}
}
void rezolvare(){
for (int i = 1; i <= n; ++i){
for (int j = 1; j <= g; ++j){
s[i][j] = max(s[i - 1][j], s[i][j - 1]);
if (a[i].kg > j){
continue;
}
s[i][j] = max(s[i][j], a[i].val + s[i - 1][j - a[i].kg]);
}
}
printf("%d\n", s[n][g]);
}
int main(){
freopen("rucsac.in", "r", stdin);
freopen("rucsac.out", "w", stdout);
citire();
rezolvare();
return 0;
}