Pagini recente » Cod sursa (job #308444) | Cod sursa (job #2980299) | Cod sursa (job #117268) | Cod sursa (job #1844361) | Cod sursa (job #742148)
Cod sursa(job #742148)
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
using namespace std;
#define nmax 1 << 30
#define nmb 1010
int e[nmb], c[nmb], cost[nmb][nmb], g, w;
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
int i, j;
scanf("%i %i", &g, &w);
for(i = 1; i <= g; ++i)
{
scanf("%i %i", &e[i], &c[i]);
}
for(j = 0; j <= w; ++j) cost[0][j] = nmax;
for(i = 0; i <= g; ++i) cost[i][0] = nmax;
for(i = 1; i <= g; ++i)
{
for(j = 1; j<= w; ++j)
{
if(j > e[i])
{
cost[i][j] = min(cost[i-1][j], cost[i-1][j-e[i]] + c[i]);
}else
{
cost[i][j] = min(cost[i-1][j], c[i]);
}
}
}
if(cost[g][w] != nmax) printf("%i\n", cost[g][w]);
else printf("-1\n");
return 0;
}