Pagini recente » Cod sursa (job #2097642) | Cod sursa (job #71242) | Cod sursa (job #3161556) | Cod sursa (job #1792207) | Cod sursa (job #1794151)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
int p[5001], g[10001], d[2][10001], n, k;
void read()
{
in>>n>>k;
for (int i=1; i<=n; i++)
in>>g[i]>>p[i];
}
void solve()
{
int l=0;
for (int i=1; i<=n; i++, l=1-l) /// l e linia de dinainte si 1-l cea curenta
{
for (int j=0; j<=k; j++)
{
d[1-l][j]=d[l][j];
if (j>=g[i])
d[1-l][j]=max(d[1-l][j], d[l][j-g[i]]+p[i]);
//out<<d[1-l][j]<<' ';
}
//out<<'\n';
}
out<<d[l][k];
}
int main()
{
read();
solve();
return 0;
}