Pagini recente » Cod sursa (job #1625297) | Cod sursa (job #1608519) | Cod sursa (job #1111581) | Cod sursa (job #1477000) | Cod sursa (job #1987970)
#include <iostream>
#include<stdio.h>
int d[10001];
struct ura{
int x, y;
};
ura v[5001];
using namespace std;
int main() {
FILE *fin, *fout;
int i, n, g, j, max;
fin=fopen("rucsac.in", "r");
fout=fopen("rucsac.out", "w");
fscanf( fin, "%d%d", &n, &g);
for(i=1;i<=n;i++) {
fscanf( fin , "%d%d", &v[i].x, &v[i].y);
}
for(i=1;i<=n;i++){
for(j=g;j>=1;j--) {
if(d[j-v[i].x]!=0 && d[j-v[i].x]+v[i].y>d[j]) {
d[j]=d[j-v[i].x]+v[i].y;
}
}
if(d[v[i].x]<v[i].y) {
d[v[i].x]=v[i].y;
}
}
max=0;
for(i=1;i<=g;i++) {
if(d[i]>max) {
max=d[i];
}
}
fprintf( fout, "%d", max);
fclose( fin );
fclose( fout );
return 0;
}