Pagini recente » Cod sursa (job #1836015) | Cod sursa (job #1402533) | Cod sursa (job #2630416) | Cod sursa (job #2341912) | Cod sursa (job #1426007)
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int GMAX=10001;
int d[GMAX];
int main()
{
FILE *fin, *fout;
int n;
int g,i,q,j;
fin=fopen("rucsac.in","r");
fscanf(fin,"%d%d",&n,&g);
d[0]=0;
for(i=1;i<=g;++i)
d[i]=-1;
int maxdr=0;
for(q=0;q<n;++q)
{
int w,p;
fscanf(fin,"%d%d",&w,&p);
for(j=maxdr;j>=0;--j)
if(j+w<=g)
if(d[j]!=-1){
d[j+w]=max(d[j+w],d[j]+p);
if(j+w>maxdr)
maxdr=j+w;
}
}
fclose(fin);
int maxp=0;
for(i=1;i<=g;++i)
{
if(d[i]>maxp)
maxp=d[i];
}
fout=fopen("rucsac.out","w");
fprintf(fout,"%d",maxp);
fclose(fout);
return 0;
}