Pagini recente » Cod sursa (job #2687662) | Cod sursa (job #478335) | Cod sursa (job #151608) | Cod sursa (job #3239066) | Cod sursa (job #807018)
Cod sursa(job #807018)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fi ("energii.in");
ofstream fo ("energii.out");
const int OO = (1<<30)-1, wmax = 5005, gmax = 1005;
int NG, W, R[wmax];
struct gen { int w, c; } G[gmax];
void cit ()
{
fi >> NG >> W;
for (int i = 1; i <= NG; i++)
fi >> G[i].w >> G[i].c;
for (int i = 1; i <= W; i++)
R[i] = OO;
}
void ruc ()
{
int g, w, w2;
for (g = 1; g <= NG; g++)
{
for (w = W; w >= 0; w--)
{
w2 = min (w + G[g].w, W);
if (R[w2] > R[w] + G[g].c)
{
R[w2] = R[w] + G[g].c;
}
}
}
}
void afi ()
{
if (R[W] != OO)
fo << R[W] << '\n';
else
fo << "-1\n";
}
int main ()
{
cit ();
ruc ();
afi ();
return 0;
}