Pagini recente » Cod sursa (job #2442892) | Cod sursa (job #1633014) | Monitorul de evaluare | Cod sursa (job #603450) | Cod sursa (job #1011866)
#include <cstdio>
#define Infinit 1000000000
using namespace std;
int E[1005], C[1005], Best[1005][5005], N, W;
int main ()
{
freopen ("energii.in", "r", stdin);
freopen ("energii.out", "w", stdout);
scanf ("%d%d", &N, &W);
for (int i=1; i<=N; ++i)
{
scanf ("%d%d", &E[i], &C[i]);
}
for (int i=0; i<=N; ++i)
{
for (int j=1; j<=W; ++j)
{
Best[i][j]=Infinit;
}
}
for (int i=1; i<=N; ++i)
{
for (int j=1; j<=W; ++j)
{
if (E[i]<=j)
{
Best[i][j]=Best[i-1][j-E[i]]+C[i];
}
else
{
Best[i][j]=C[i];
}
}
}
if (Best[N][W]==Infinit)
{
printf ("%d\n", -1);
}
else
{
printf ("%d\n", Best[N][W]);
}
return 0;
}