Pagini recente » Cod sursa (job #677451) | Cod sursa (job #2721642) | Cod sursa (job #3249525) | Cod sursa (job #2825140) | Cod sursa (job #2468015)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream in("rucsac.in");
ofstream out("rucsac.out");
int n,g;
in>>n>>g;
int w[n+5],p[n+5];
for (int i=0;i<n;i++)
{
in>>w[i]>>p[i];
}
int profit[g+5];
profit[0]=0;
for (int j=1;j<=g;j++)
{
profit[j]=-1;
}
for (int i=0;i<n;i++)
{
for (int j=g-w[i];j>=0;j--)
{
if (profit[j]!=-1)
{
if (p[i]+profit[j]>profit[j+w[i]])
{
profit[j+w[i]]=p[i]+profit[j];
}
}
}
}
int maxim=0;
for (int j=0;j<=g;j++)
{
if (maxim<profit[j]) maxim=profit[j];
}
out<<maxim;
in.close();
out.close();
return 0;
}