Pagini recente » Cod sursa (job #2945262) | Cod sursa (job #1784955) | Cod sursa (job #2018867) | Cod sursa (job #879933) | Cod sursa (job #1265770)
#include <fstream>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
const int gmax = 1000 , wmax = 5000 , infinit = 10000001;
int v[wmax + 10001] , e[gmax + 1] , c[gmax + 1];
int g , w;
int main()
{
int cmax = 0;
in >> g >> w;
for(int i = 1 ; i <= g ; i++)
{
in >> e[i] >> c[i];
cmax = max(cmax , c[i]);
}
for(int i = 1 ; i <= w + cmax; i++)
v[i] = infinit;
for(int i = 1 ; i <= g ; i++)
for(int j = w - 1 ; j >= 0 ; j--)
if(j + e[i] <= w && v[j] + c[i] < v[j + e[i]])
v[j + e[i]] = v[j] + c[i];
int rez = infinit;
for(int i = w ; i <= w + cmax; i++)
rez = min(rez , v[i]);
if(rez != infinit)
out << rez << '\n';
else
out << "-1\n";
return 0;
}