Pagini recente » Cod sursa (job #352631) | Cod sursa (job #3128416) | Cod sursa (job #978883) | Cod sursa (job #1788093) | Cod sursa (job #2515448)
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
const int nu = 1<<30;
int main()
{
int n, W, i, j, l;
int cmin[2][5001]; //cmin[l][i] = costul minim de a obtine cel putin i unitati de energie cu primele k generatoare
int w[1001], c[1001];
fin >> n >> W;
for (i = 1; i<=n; i++)
fin >> w[i] >> c[i];
for (i = 1; i<=W; i++)
cmin[1][i] = nu;
for (i = 1, l = 0; i<=n; i++, l = 1-l)
{
for (j = 1; j<w[i]; j++)
cmin[l][j] = cmin[1-l][j];
cmin[l][w[i]] = c[i];
for (j = w[i]+1; j<=W; j++)
cmin[l][j] = min(cmin[1-l][j], c[i]+cmin[1-l][j-w[i]]);
}
fout << cmin[1-l][W];
return 0;
}