Pagini recente » Cod sursa (job #1041439) | Cod sursa (job #884405) | Cod sursa (job #1137424) | Cod sursa (job #1307819) | Cod sursa (job #2800927)
#include <iostream>
#include<fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int dp[2][10005];
int main()
{
int n,maxWeight,currentWeight,currentPrice;
fin>>n>>maxWeight;
int line=0;
for(int i=0; i<n; i++)
{
fin>>currentWeight>>currentPrice;
for(int j=0; j<=maxWeight; j++)
{
if(dp[line][j]>dp[1-line][j])
dp[1-line][j]=dp[line][j];
if(dp[line][j]+currentPrice > dp[1-line][currentWeight+j] && j+currentWeight<=maxWeight)
dp[1-line][currentWeight+j]=dp[line][j]+currentPrice;
}
line=1-line;
}
fout<<max(dp[line][maxWeight],dp[1-line][maxWeight]);
return 0;
}