Pagini recente » Cod sursa (job #429372) | Cod sursa (job #1304875) | Cod sursa (job #2299290) | Cod sursa (job #2403576) | Cod sursa (job #1334653)
#include <iostream>
#include <fstream>
#define Gmax 10001
#define oo 100000000
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int E[Gmax],G,w,C[Gmax],DP[Gmax];
void read()
{
fin>>G>>w;
int i;
for(i=1;i<=G;i++)
fin>>E[i]>>C[i];
}
//DP[i]=costul minim pt a obtine o energie=i
void solve()
{
int i,j;
for(i=1;i<=w;i++)
DP[i]=oo;
for (i=1;i<=G;i++)
for (j=w;j>=0;j--)
if (j>=E[i])
{
if(DP[j]>DP[j-E[i]]+C[i]) DP[j]=DP[j-E[i]]+C[i];
}
else DP[j]=min(DP[j], C[i]);
if (DP[w]!=oo) fout<<DP[w];
else fout<<"-1";
}
int main()
{
read();
solve();
return 0;
}