Cod sursa(job #2372021)
| Utilizator | Data | 6 martie 2019 20:55:52 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | c-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.59 kb |
#include <stdio.h>
#include <stdlib.h>
int optim[50000001];
int main()
{
FILE *fin, *fout;
fin=fopen("rucsac.in", "r");
fout=fopen("rucsac.out", "w");
int n, g, sol=0, i, j, w, p;
fscanf(fin, "%d %d", &n, &g);
for(i=0; i<n; i++){
fscanf(fin, "%d %d", &w, &p);
for(j=g-w; j>=0; j--){
if(optim[j+w]<optim[j]+p){
optim[j+w]=optim[j]+p;
if(optim[j+w]>sol)
sol=optim[j+w];
}
}
}
fprintf(fout, "%d", sol);
fclose(fin);
fclose(fout);
return 0;
}
