Pagini recente » Cod sursa (job #2093192) | Cod sursa (job #1389071) | Cod sursa (job #486390) | Cod sursa (job #1766042) | Cod sursa (job #2471729)
#include<bits/stdc++.h>
using namespace std;
ifstream in("energii.in ");
ofstream out("energii.out");
int elemente,profit[1001],cost[1001];
int capacitate;
void read()
{
in>>elemente>>capacitate;
for(int i=0; i<elemente; i++)
{
in>>profit[i]>>cost[i];
}
}
int dp[1002][5002];
void knapsack()
{
for(int i=1; i<=elemente; i++)
{
for(int k=0; k<=capacitate; k++)
{
dp[i][k]=dp[i-1][k];
if(profit[i-1]<=k)
{
dp[i][k]=max(dp[i][k],dp[i-1][k-profit[i-1]]+cost[i-1]);
}
}
}
int result=dp[elemente][capacitate];
if(result<capacitate)
out<<-1;
else
out<<result;
}
int main()
{
read();
knapsack();
}