Pagini recente » Cod sursa (job #2604544) | Cod sursa (job #2887271) | Cod sursa (job #2035786) | Cod sursa (job #622779) | Cod sursa (job #920420)
Cod sursa(job #920420)
#include <fstream>
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
const int N = 10001;
long long n, i, f, profit[N], g[N], p[N], solutie, k;
void citire();
void rezolvare();
void afisare();
int main()
{
citire();
rezolvare();
afisare();
in.close();
out.close();
return 0;
}
void citire()
{
in >> n >> k;
for(i=1;i<=n;i++)
in >> g[i] >> p[i];
}
void rezolvare()
{
for(i=1;i<=n;i++)
{
for(int j=k-g[i];j>=1;j--)
{
if(profit[j]!=0 && profit[j]+p[i]>profit[j+g[i]])
profit[j+g[i]]=profit[j]+p[i];
if(profit[j+g[i]]>solutie)
solutie=profit[j+g[i]];
}
if(g[i]<=k && p[i]>profit[g[i]])
profit[g[i]]=p[i];
if(profit[g[i]]>solutie)
solutie=profit[g[i]];
}
}
void afisare() { out << solutie ;}