Pagini recente » Cod sursa (job #2322478) | Cod sursa (job #2850126) | Cod sursa (job #689988) | Cod sursa (job #1357691) | Cod sursa (job #1542588)
#include <iostream>
#include <fstream>
using namespace std;
#define INF 12345678
ifstream fin("energii.in");
ofstream fout("energii.out");
///cost[j] = costul minim necesar pentru a produce energia j daca j< w
///cost[j] = costul minim necesar pentru a produce energia >= w
int g,w, emax, c[1001],e[1001],cost[5001];
int main()
{
fin>>g>>w ;
for(int i=1;i<=g;i++)
fin>>e[i]>>c[i];
for(int i=1;i<=w;i++)
cost[i]=INF;
cost[0]=0;
for(int i=1;i<=g;i++)
for(int j=w+e[i]-1;j>=e[i];j--){
if(cost[j-e[i]]!=INF){
if(j>=w)
if(cost[j-e[i]]+c[i]<cost[w])
cost[w]=cost[j-e[i]]+c[i];
else;
else
if(cost[j-e[i]]+c[i]<cost[j])
cost[j]=cost[j-e[i]]+c[i];
}
}
if(cost[w]==INF)
fout<<-1;
else
fout<<cost[w];
return 0;
}