Pagini recente » Cod sursa (job #698346) | Cod sursa (job #472948) | Cod sursa (job #2696864) | Cod sursa (job #2639664) | Cod sursa (job #1322941)
#include <iostream>
#include <stdio.h>
using namespace std;
struct produs{
int g,p;
};
produs v[5069];
int main()
{
int profit[11337];
int m,k,n;
FILE *in,*out;
in=fopen("rucsac.in","r");
fscanf(in,"%d%d",&n,&k);
for(int i=1;i<=n;i++){
fscanf(in,"%d%d",&v[i].g,&v[i].p);
}
for(int i=1;i<=k;i++) profit[i]=-1;
profit[0]=0;
for(int i=1;i<=n;i++){
for(int j=k-v[i].g;j>=0;j--){
if(profit[j]!=-1&&profit[j]+v[i].p>profit[j+v[i].g])
profit[j+v[i].g]=profit[j]+v[i].p;
}
}
out=fopen("rucsac.out","w");
int maxim=-1;
for(int i=1;i<=k;i++){
if(profit[i]>maxim) maxim=profit[i];
}
fprintf(out,"%d",maxim);
return 0;
}