Pagini recente » Cod sursa (job #3158178) | Cod sursa (job #1195899) | Cod sursa (job #1075325) | Cod sursa (job #2747214) | Cod sursa (job #1199865)
#include <fstream>
#include <iostream>
#define inf 99000000
using namespace std;
int main()
{
ifstream f("energii.in");
ofstream g("energii.out");
int G,i,j,W,minim,total=0;
int energie[1001],cost[1001],rezultat[15001];
f >> G>>W;
for (i = 1; i <= G; i++)
f >> energie[i] >> cost[i];
for (i = 1; i <= G; i++) total = total + energie[i];
if (total < W) g << -1;
else
{
rezultat[0]=0;
for(i=1;i<W+10000;i++) rezultat[i]=inf;
for(i=1;i<=G;i++)
for(j=W;j>=0;j--)
{
if(rezultat[j]!=inf)
if(rezultat[j+energie[i]]==inf || rezultat[j+energie[i]]>rezultat[j]+cost[i])
rezultat[j+energie[i]]=rezultat[j]+cost[i];
}
minim=inf;
for(i=W;i<W+10000;i++)
if(minim>rezultat[i]) minim=rezultat[i];
g<<minim;
}
f.close();
g.close();
return 0;
}