Pagini recente » Monitorul de evaluare | Cod sursa (job #1969819) | Cod sursa (job #2711926) | Cod sursa (job #1385415) | Cod sursa (job #1893711)
#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] = {1};
int main() {
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]) {
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;
}