Pagini recente » Cod sursa (job #1419655) | Cod sursa (job #2445050) | Cod sursa (job #1830321) | Cod sursa (job #1501450) | Cod sursa (job #1784126)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int n;
int Values[5001];
int Weights[5001];
int maxWeight;
int dp[10001];
int mass=0;
int value=0;
void citire()
{
int i;
f>>n;
f>>maxWeight;
for(i=1;i<=n;i++)
{
f>>Weights[i];
f>>Values[i];
}
}
void knapsack()
{
int i;
int j;
dp[0]=1;
for(i=1;i<=n;i++)
{
for(j=maxWeight;j>=0;j--)
if(dp[j]!=0)
{
if(j+Weights[i]<=maxWeight)
{
mass=j+Weights[i];
value=dp[j]+Values[i];
if(dp[mass]<value)
dp[mass]=value;
}
}
}
int max1=0;
for(i=1;i<=maxWeight;i++)
if(dp[i]>max1)
max1=dp[i];
g<<max1-1;
}
int main()
{
citire();
knapsack();
f.close();
g.close();
return 0;
}