Pagini recente » Cod sursa (job #1323968) | Cod sursa (job #1522580) | Cod sursa (job #1454091) | Cod sursa (job #2221295) | Cod sursa (job #1201528)
#include<fstream>
using namespace std;
struct elem
{
int x,y;
};
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
const int NMAX=5005;
const int GMAX=10005;
int n,G;
elem a[NMAX];
int m1[GMAX],m2[GMAX];
inline void Citire()
{
int i;
fin>>n>>G;
for (i=1;i<=n;i++) fin>>a[i].x>>a[i].y;
}
inline void Solve()
{
int i,j;
for (i=1;i<=n;i++)
{
for (j=0;j<=G;j++)
{
m2[j]=0;
if (a[i].x<=j) m2[j]=max(m2[j],max(m1[j-a[i].x]+a[i].y,m1[j]));
}
for (j=0;j<=G;j++)
m1[j]=m2[j];
}
}
inline void Afisare()
{
int i,maxim=0;
for (i=1;i<=G;i++) maxim=max(maxim,m2[i]);
fout<<maxim<<"\n";
}
int main()
{
Citire();
Solve();
Afisare();
return 0;
}