Pagini recente » Cod sursa (job #545799) | Cod sursa (job #660660) | Cod sursa (job #2703641) | Cod sursa (job #2701306) | Cod sursa (job #2047807)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("salam.in");
ofstream out("salam.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();
out << '\n';
for (int i = 0; i <= 1; i++)
{
for (int j = 1; j <= k; j++)
{
out << d[i][j] << ' ';
}
return 0;
}
return 0;
}