Pagini recente » Cod sursa (job #571931) | Cod sursa (job #2270547) | Cod sursa (job #2448745) | Cod sursa (job #2725519) | Cod sursa (job #1773118)
#include <stdio.h>
using namespace std;
struct obiect{
short m, p;
} v[5000];
int d[2][10001];
inline int maxim(int a,int b){
if(a>b)
return a;
return b;
}
int main()
{
int n, G, i, j, g;
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, "%hd%hd", &v[i].m, &v[i].p);
j=0;
for(i=0;i<n;i++){
for(g=1;g<v[i].m;g++)
d[j][g]=d[1-j][g];
for(g=v[i].m;g<=G;g++)
d[j][g]=maxim(d[1-j][g],v[i].p+d[1-j][g-v[i].m]);
j=1-j;
}
j=1-j;
fprintf(fo, "%d", d[j][G]);
fclose(fi);
fclose(fo);
return 0;
}