Pagini recente » Cod sursa (job #1044826) | Cod sursa (job #1360055) | Cod sursa (job #3005352) | Cod sursa (job #2764989) | Cod sursa (job #2808067)
#include <fstream>
#include <limits.h>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int d[50005];
int main()
{
int G, W, e, c, mn = INT_MAX;
fin >> G >> W;
for(int i = 1; i <= 50005; i++)
d[i] = -1;
for(int i = 1; i <= G; i++)
{
fin >> e >> c;
for(int j = W; j >= W - e; j--)
if(d[j] != -1 && d[j] + c < mn)
mn = d[j] + c;
for(int j = W - e - 1; j >= 0; j--)
{
if(d[j] != -1 && (d[j + e] == -1 || d[j + e] > d[j] + c))
d[j + e] = d[j] + c;
}
}
if(mn == INT_MAX)
fout << "-1";
else fout << mn;
return 0;
}