Pagini recente » Cod sursa (job #2259077) | Cod sursa (job #1981464) | Judete | Cod sursa (job #2030156) | Cod sursa (job #2846938)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int n, i, j, w, vsize;
vector <int> d;
short eg[1001], cg[1001];
int main()
{
fin >> n >> w;
for (i = 1; i <= n; i++)
{
fin >> eg[i] >> cg[i];
vsize += cg[i];
}
d.resize(vsize+1, 1e9);
d[0] = 0; vsize = 0;
for (i = 1; i <= n; i++)
{
vsize += eg[i];
for (j = vsize; j >= eg[i]; j--)
if (d[j-eg[i]]+cg[i] < d[j]) d[j] = d[j-eg[i]]+cg[i];
}
int mx = 1e9;
for (i = w; i <= vsize; i++)
mx = min(mx, d[i]);
if (mx == 1e9) fout << -1;
else fout << mx;
return 0;
}