Pagini recente » Cod sursa (job #1272330) | Cod sursa (job #1406550) | Cod sursa (job #2499892) | Cod sursa (job #1561229) | Cod sursa (job #1540638)
#include <fstream>
#define INF 0x3f3f3f3f
#define NO1 101
#define NO2 5001
using namespace std;
ifstream InF ("energii.in");
ofstream OutF ("energii.out");
int EG[NO1], CG[NO1];
int G, W;
int aux[NO1][NO2];
int i, j;
void read ();
void solve ();
void print ();
int main()
{
read ();
solve();
print ();
return 0;
}
void read ()
{
InF >> G >> W;
for (i=1; i<=G; i++)
InF >> EG[i] >> CG[i];
}
void solve ()
{
for (i=0; i<=G; i++)
for (j=1; j<=W; j++)
aux[i][j] = INF;
for (i=1; i<=G; i++)
for (j=1; j<=W; j++)
if (j >= EG[i])
aux[i][j] = min (aux[i-1][j], aux[i-1][j-EG[i]]+CG[i]);
else
aux[i][j] = min (aux[i-1][j], CG[i]);
}
void print ()
{
if (aux[G][W] == INF)
OutF << "-1";
else
OutF << aux[G][W];
}