Pagini recente » Cod sursa (job #902874) | Cod sursa (job #1848916) | Cod sursa (job #1336298) | Cod sursa (job #191515) | Cod sursa (job #1542570)
#include <iostream>
#include<fstream>
#include<values.h>
using namespace std;
int main()
{int g,w,calitate[10001],valoare[10001],s=0,cost[5001],i,j;
ifstream f("energii.in");
ofstream r("energii.out");
f>>g>>w;
for(i=1;i<=g;i++)
{f>>calitate[i]>>valoare[i];s=s+calitate[i];}
if(s<w) r<<-1;
else
{for(i=1;i<=w;i++)
cost[i]=2000000000;
cost[0]=0;
for(i=1;i<=g;i++)
{
for(j=w+calitate[i]-1;j>=calitate[i];j--)
if(cost[j-calitate[i]]!=-1) {if(j>=w)if(cost[j-calitate[i]]+valoare[i]<cost[w]) cost[w]=cost[j-calitate[i]]+valoare[i];
else;
else if(cost[j-calitate[i]]+valoare[i]<cost[j]) cost[j]=cost[j-calitate[i]]+valoare[i];}
}
j=w;
while(cost[j]==0)
j++;
r<<cost[j];
}
f.close();
r.close();
return 0;
}