Pagini recente » Cod sursa (job #1489542) | Cod sursa (job #2167862) | Cod sursa (job #1244623) | Cod sursa (job #458623) | Cod sursa (job #1000996)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("energii.in");
ofstream g ("energii.out");
int n, emax;
int v[1005][5005];
struct generator {int e, c;} gen[1005];
void initializeaza ()
{
f>>n>>emax;
for (int i=1; i<=n; i++)
f>>gen[i].e>>gen[i].c;
for (int i=0; i<=n; i++){
for (int j=0; j<=emax; j++) v[i][j]=9999999;}
for (int i=0; i<=n; i++) v[i][0]=0;
}
void rezolva ()
{
for (int i=1; i<=n; i++)
for (int j=0; j<=emax; j++)
if(j<gen[i].e)
v[i][j]=min(v[i-1][j],gen[i].c);
else
v[i][j]=min(v[i-1][j],v[i-1][j-gen[i].e]+gen[i].c);
}
int main ()
{
initializeaza ();
rezolva ();
if (v[n][emax]==9999999) g<<"-1";
else g<<v[n][emax];
g<<'\n';
return 0;
}