Cod sursa(job #1343095)
| Utilizator | Data | 14 februarie 2015 21:23:15 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 0.46 kb |
#include <stdio.h>
#include <stdlib.h>
int d[10001];
int main()
{
int i, n, g, col, max, v, w;
FILE *fi=fopen("rucsac.in", "r"), *fo=fopen("rucsac.out", "w");
fscanf(fi, "%d%d", &n, &g);
for(i=0;i<n;i++){
fscanf(fi, "%d%d", &w, &v);
for(col=g;col>=w;col--)
if(col-w>=0)
if(d[col-w]+v>d[col])
d[col]=d[col-w]+v;
}
max=0;
for(col=1;col<=g;col++)
if(d[col]>max)
max=d[col];
fprintf(fo, "%d", max);
return 0;
}
