Pagini recente » Cod sursa (job #1506857) | Cod sursa (job #664121) | Cod sursa (job #1931172) | Cod sursa (job #3147795) | Cod sursa (job #628766)
Cod sursa(job #628766)
#include<cstdio>
const int maxN=1001,maxW=5001,I=2000000001;
int g,w,e[maxN],c[maxN],a[maxN][maxW];
int min(int x,int y)
{
if(x<y)
return x;
return y;
}
void read()
{
int i;
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d",&g);
scanf("%d",&w);
for(i=1;i<=g;++i)
scanf("%d%d",&e[i],&c[i]);
}
void work()
{
int i,j;
for(i=0;i<=g;++i)
for(j=1;j<=w;++j)
a[i][j]=I;
for(i=1;i<=g;++i)
for(j=1;j<=w;++j)
if(e[i]<=j)
a[i][j]=min(a[i-1][j],a[i-1][j-e[i]]+c[i]);
else a[i][j]=min(a[i-1][j],c[i]);
if(a[g][w]==I)
printf("-1\n");
else printf("%d\n",a[g][w]);
}
int main()
{
read();
work();
return 0;
}