Pagini recente » Cod sursa (job #1442488) | Cod sursa (job #1176707) | Cod sursa (job #281509) | Cod sursa (job #720445) | Cod sursa (job #517731)
Cod sursa(job #517731)
#include<cstdio>
#define min(a,b) a<b?a:b
void read(),solve();
int i,j,G,W,EG[1001],CG[1001];
long long M[1001][5001],SE;
int main()
{
read();
solve();
return 0;
}
void read()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d%d",&G,&W);
for(i=1;i<=G;i++)
{
scanf("%d%d",&EG[i],&CG[i]);
SE+=EG[i];
}
}
void solve()
{
if(SE<W){printf("-1\n");return;}
for(i=1;i<=W;i++)M[0][i]=1<<20;
for(i=1;i<=G;i++)
for(j=1;j<=W;j++)
{
if(EG[i]>j){M[i][j]=min(M[i-1][j],EG[i]);continue;}
M[i][j]=min(M[i-1][j],M[i-1][j-EG[i]]+CG[i]);
}
printf("%lld\n",M[G][W]);
}