Pagini recente » Cod sursa (job #2157199) | Cod sursa (job #828521) | Cod sursa (job #3216361) | Cod sursa (job #2323245) | Cod sursa (job #2131580)
#include <fstream>
#define nmax 1002
#define kmax 5002
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int calc[nmax][kmax],sum_power=0;
int cost[nmax],power[nmax],nr_gen,needed_power;
int main()
{
fin>>nr_gen>>needed_power;
for(int i=1;i<=nr_gen;i++){
fin>>cost[i]>>power[i];
sum_power+=power[i];
}
if(sum_power<needed_power)
fout<<-1;
else
{
calc[1][cost[1]]=power[1];
for(int i=2;i<=nr_gen;i++)
for(int j=cost[i];j<=needed_power;j++)
if(j+cost[i]>=needed_power)
calc[i][needed_power]=max(calc[i-1][needed_power],calc[i-1][needed_power-cost[i]]+power[i]);
else
calc[i][j]=max(calc[i-1][needed_power],calc[i-1][j-cost[i]]+power[i]);
fout<<calc[nr_gen][needed_power];
}
return 0;
}