Pagini recente » Cod sursa (job #2085066) | Cod sursa (job #1912431) | Cod sursa (job #2239964) | Cod sursa (job #158487) | Cod sursa (job #2684472)
#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]=10000001;
}
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=90000001;
for(int i=cost_repornire; i<10000; i++)
{
cost_minim=min(cost_minim,dp[i]);
}
if(cost_minim==90000001)
out<<-1;
else
out<<cost_minim;
return 0;
}