Pagini recente » Cod sursa (job #2981291) | Cod sursa (job #2892442) | Cod sursa (job #135578) | Cod sursa (job #267992) | Cod sursa (job #2395650)
#include <fstream>
using namespace std;
int e[10001], c[10001], n, E, i, j, D[10001], minim;
int main()
{
ifstream fin ("energii.in");
ofstream fout ("energii.out");
fin>>n>>E;
for (i=1; i<=n; i++)
fin>>e[i]>>c[i];
/// punem in D[i] costul minim pentru a obtine cantitatea de energie i;
D[0]=0;
for (i=1; i<=10000; i++)
D[i]=-1;
for (i=1; i<=n; i++)
for (j=10000; j>=0; j--)
if (D[j]!=-1 && j+e[i]<=10000)
{
if (D[j+e[i]]!=-1)
D[j+e[i]]=min(D[j+e[i]], D[j]+c[i]);
else
D[j+e[i]]=D[j]+c[i];
}
minim=2000000000;
for (i=10000; i>=E; i--)
if (D[i]<=minim && D[i]!=-1)
minim=D[i];
if (minim==2000000000)
fout<<-1;
else
fout<<minim;
}