Pagini recente » Cod sursa (job #483317) | Cod sursa (job #2122793) | Cod sursa (job #3146409) | Cod sursa (job #704021) | Cod sursa (job #703486)
Cod sursa(job #703486)
#include<fstream>
#include<algorithm>
#define NMAX 10010
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int n, G, best[2][NMAX], vz[NMAX];
struct greu
{
int x, y;
}a[NMAX];
bool cmp(greu a, greu b)
{
return a.x<b.x;
}
void Citeste()
{
int i=1;
f>>n>>G;
for (i=1; i<=n; ++i) f>>a[i].x>>a[i].y;
}
void Solve()
{
int i, mx=-100, j, lin;
for (i=1; i<=n; ++i)
for (j=1; j<=G; ++j)
{
lin=i%2;
best[lin][j]=best[1-lin][j];
if (a[i].x<=j) best[lin][j]=max(best[lin][j], best[1-lin][j-a[i].x]+a[i].y);
}
for (i=1; i<=G; ++i)
mx=max(mx, best[n%2][i]);
g<<mx<<"\n";
}
int main()
{
Citeste();
Solve();
f.close();
g.close();
return 0;
}