Pagini recente » Cod sursa (job #1196426) | Cod sursa (job #3144595) | Cod sursa (job #153393) | Cod sursa (job #153562) | Cod sursa (job #1265672)
#include <cstdio>
#include <fstream>
using namespace std;
int ma,gr[10000],p[10000],n,g,i,s[20000],j;
int main ()
{freopen("rucsac.in","r",stdin);
ofstream go ("rucsac.out");
scanf("%d%d",&n,&g);
for (i=1; i<=n; i++)
scanf("%d%d",&gr[i],&p[i]);
for (i=1; i<=g; i++) s[i]=0;
s[0]=0;
for (i=1; i<=n; i++) {
for (j=g; j>=0; j--)
if (s[j]!=-1 && s[j+gr[i]]==-1) s[j+gr[i]]=p[i];
else if (s[j]!=-1 && s[j+gr[i]]<p[i]+s[j]) s[j+gr[i]]=s[j]+p[i];
}
ma=0;
for (i=1; i<=g; i++)
if (s[i]>ma) ma=s[i];
go<<ma;
return 0;
}