Pagini recente » Istoria paginii runda/simulare_tractoare/clasament | Cod sursa (job #2488558) | Istoria paginii runda/minune2/clasament | Profil Birzu_George_321CC | Cod sursa (job #1096656)
/*
Keep It Simple!
*/
#include <cstdio>
#define MAXN 1005
#define MAXG 10000005
#define min(a,b) a>b?b:a
int N, G;
int E[MAXN],C[MAXN];
int D[MAXG];
long long S,V;
int main()
{
freopen("energii.in", "r", stdin);
freopen("energii.out", "w", stdout);
scanf("%d%d", &N, &G);
for(int i = 1; i <= N; ++i)
{
scanf("%d%d", &E[i],&C[i]);
S += C[i];
V += E[i];
}
if( V < G )
{
printf("-1");
return 0;
}
else if ( V == G )
{
printf("%lld",S);
return 0;
}
for(int i=1; i<=G; i++)
D[i] = 15000;
for(int i=1; i<=N; i++)
for(int j = G; j >= 0; j--)
{
D[j] = min(D[j],D[j-E[i]] + C[i]);
}
printf("%d ",D[G]);
return 0;
}