Pagini recente » Cod sursa (job #674523) | Cod sursa (job #662408)
Cod sursa(job #662408)
#include <stdio.h>
#define DIM 10010
int V[DIM], N, G, max, min, maxim, i, x, p;
int main() {
FILE *f = fopen("rucsac.in","r");
FILE *g = fopen("rucsac.out","w");
fscanf(f,"%d %d",&N, &G);
max = 0;
min = G+1;
for (;N;N--) {
fscanf(f,"%d %d",&x, &p);
for (i=max;i>=min;i--) {
if (V[i] != 0 && i+x <= G && V[i] + p > V[i+x]) {
V[i+x] = V[i] + p;
if (V[i+x] > maxim)
maxim = V[i+x];
if (i+x > max)
max = i+x;
if (i+x < min)
min = i+x;
}
}
if (x <= G && V[x] < p) {
V[x] = p;
if (V[x] > maxim)
maxim = V[x];
if (x > max)
max = x;
if (x < min)
min = x;
}
}
fclose(f);
fprintf(g,"%d\n",maxim);
return 0;
}