Pagini recente » Cod sursa (job #3170252) | Cod sursa (job #1458088) | Cod sursa (job #3225162) | Cod sursa (job #2064430) | Cod sursa (job #1893712)
#include <cstdio>
#include <cstdlib>
#include <algorithm>
using namespace std;
FILE *fin = fopen("rucsac.in", "r"), *fout = fopen("rucsac.out", "w");
#define MAX 10001
int r[MAX];
int main() {
r[0] = 1;
int n, g;
fscanf(fin, "%d%d", &n, &g);
for(int i = 0;i < n;i++) {
int w, p;
fscanf(fin, "%d%d", &w, &p);
for(int j = g;j >= 0;j--)
if(r[j]) {
if(j + w <= g)
r[j + w] = max(r[j + w], r[j] + p);
}
}
int ans = 0;
for(int i = 0;i <= g;i++)
ans = max(ans, r[i]);
fprintf(fout, "%d", ans - 1);
fclose(fin), fclose(fout);
return 0;
}