Pagini recente » Monitorul de evaluare | Cod sursa (job #682752) | Cod sursa (job #1669271) | Cod sursa (job #3243368) | Cod sursa (job #1010503)
#include<iostream>
#include<fstream>
#include<cstdio>
#include<iostream>
#include<fstream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<ctime>
using namespace std;
int n,gs,s[5005],g[5005],m1[10005],m2[10005],maxim;
inline void Citire()
{
int i;
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
scanf("%d%d",&n,&gs);
for (i=1;i<=n;i++)
scanf("%d%d",&g[i],&s[i]);
}
inline void FormeazaMat()
{
int x=1,i,j;
for (j=1;j<=n;j++)
{
for (i=1;i<=gs;i++)
{
if (g[j]<=i)
m2[i]=max(m1[i-g[j]]+s[j],m1[i]);
else m2[i]=m2[i-1];
}
for (i=0;i<=gs;i++)
m1[i]=m2[i];
}
}
int main()
{
Citire();
FormeazaMat();
printf("%d\n",m2[gs]);
return 0;
}