Pagini recente » Cod sursa (job #1856123) | Cod sursa (job #1573648) | Cod sursa (job #1121251) | Cod sursa (job #607838) | Cod sursa (job #2684469)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
struct generator
{
int energie;
int cost;
};
int main()
{
ifstream in("energii.in");
ofstream out ("energii.out");
int dp[10005];
int cate_generatoare, cost_repornire;
generator generatoare[1005];
in>>cate_generatoare>>cost_repornire;
for(int i=0; i<10000; i++)
{
dp[i]=9999999999;
}
for(int i=0; i<cate_generatoare; i++)
{
in>>generatoare[i].energie>>generatoare[i].cost;
dp[generatoare[i].energie]=generatoare[i].cost;
}
for(int i=0; i<cate_generatoare; i++)
{
for(int j=10000-generatoare[i].energie; j>=0; j--)
{
if(dp[j+generatoare[i].energie]>dp[j]+generatoare[i].cost)
dp[j+generatoare[i].energie]=dp[j]+generatoare[i].cost;
}
}
int cost_minim=100000000;
for(int i=cost_repornire; i<10000; i++)
{
cost_minim=min(cost_minim,dp[i]);
}
if(cost_minim==100000000)
out<<-1;
else
out<<cost_minim;
return 0;
}