Pagini recente » Cod sursa (job #3246396) | Cod sursa (job #299244) | Cod sursa (job #954552) | Cod sursa (job #2826147) | Cod sursa (job #2005824)
#include <stdio.h>
using namespace std;
struct object{
int gre, val;
};
const int S = 10005;
object c[5005];
int sume[S];
int sum, r;
int main()
{
FILE *in, *out;
in = fopen("rucsac.in", "r");
out = fopen("rucsac.out", "w");
int n, g;
fscanf(in, "%d%d", &n, &g);
object ob;
for(int i=0; i<n; i++){
fscanf(in, "%d%d", &ob.gre, &ob.val);
c[i]=ob;
}
int j, i;
for (i = 0; i < n; i++)
{
for (j = g; j >= c[i].gre; j--)
{
if ((sume[j - c[i].gre] != 0 || j - c[i].gre == 0) && sume[j - c[i].gre] + c[i].val > sume[j])
sume[j] = sume[j - c[i].gre] + c[i].val;
}
}
int maxi=0;
for(i=1; i<=g; i++){
if(sume[i]>maxi){
maxi=sume[i];
}
}
fprintf(out, "%d", maxi);
return 0;
}