Pagini recente » Cod sursa (job #531750) | Cod sursa (job #280169) | Istoria paginii utilizator/parket | Profil MihaiG | Cod sursa (job #667040)
Cod sursa(job #667040)
#include <cstdio>
#include <algorithm>
#define GMAX 1001
#define WMAX 5001
#define CMAX 1000000000
using namespace std;
int a[2][WMAX], G, W;
int c[GMAX], e[GMAX];
int main()
{
int i, j, cap, l;
freopen("energii.in", "r", stdin);
freopen("energii.out", "w", stdout);
scanf("%d %d", &G, &W);
for(i=1;i<=G;++i)
{
scanf("%d %d", &e[i], &c[i]);
}
for(i=1;i<=W;++i)
{
a[0][i] = CMAX;
}
for(i=1,l=1;i<=G;++i,l=1-l)
{
for(j=0;j<=W;++j)
{
if(e[i] <= j)
{
a[l][j] = min(a[1-l][j], a[1-l][j - e[i]] + c[i]);
}
if(e[i] >= j)
{
a[l][j] = min(a[1-l][j], c[i]);
}
}
}
printf("%d", a[1-l][W] >= CMAX ? -1 : a[1-l][W]);
return 0;
}