Pagini recente » Cod sursa (job #2889083) | Cod sursa (job #2396917) | Cod sursa (job #877211) | Cod sursa (job #824994) | Cod sursa (job #2176231)
#include <iostream>
#include <fstream>
#define GMAX 10020
#define NMAX 5020
using namespace std;
ifstream f("rucsac.in");
ofstream h("rucsac.out");
int n, G, a[GMAX], b[GMAX], g, c, maxim;
int main()
{
f>>n>>G;
f>>g>>c;
a[g] = 1;
b[g] = c;
for(int i=2; i<=n; i++){
f>>g>>c;
for(int j=G; j>=1; j--){
if(a[j] != 0 && (j + g <= G) && (a[j+g] == 0 || (b[j+g] < b[j] + c))){
a[j+g]=i;
b[j+g]=b[j] + c;
if(b[j] + c > maxim) maxim = b[j] + c;
}
}
if(a[g] == 0 || b[g] < c){
a[g] = i;
b[g] = c;
if(b[g] > maxim) maxim = b[g];
}
}
h<<maxim;
return 0;
}