Pagini recente » Cod sursa (job #2910264) | Cod sursa (job #2726624) | Cod sursa (job #377972) | Cod sursa (job #2361023) | Cod sursa (job #1095861)
#include <cstdio>
using namespace std;
const int NMAX = 5005;
const int GMAX = 10005;
int N, G;
int bag[NMAX][2];
int matrix[2][GMAX];
void read() {
freopen("rucsac.in", "r",stdin);
freopen("rucsac.out", "w",stdout);
scanf("%i%i", &N, &G);
for(int i = 1; i <= N; i++)
scanf("%i%i", &bag[i][0], &bag[i][1]);
}
void solve() {
int swc = 0;
for(int i = 1; i <= N; i++) {
for(int j = 1; j <= G; j++) {
if(j - bag[i][0] >= 0 && matrix[swc][j-bag[i][0]] + bag[i][1] > matrix[swc][j])
matrix[1 - swc][j] = matrix[swc][j-bag[i][0]] + bag[i][1];
else
matrix[1 - swc][j] = matrix[swc][j];
}
swc = 1 - swc;
}
printf("%i", matrix[swc][G]);
}
int main() {
read();
solve();
return 0;
}