Pagini recente » Cod sursa (job #2509038) | Cod sursa (job #1676785) | Cod sursa (job #2587920) | Cod sursa (job #1916035) | Cod sursa (job #318351)
Cod sursa(job #318351)
#include <stdio.h>
#define Nmax 1024
#define Wmax 550000
int n,w,v[Nmax],c[Nmax],b[2][Wmax],max=4000000,cnt;
int main()
{
int i,j;
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d%d",&n,&w);
for(i=1;i<=n;++i)
{
scanf("%d%d",&v[i],&c[i]);
if(v[i]>=w)
{
if(c[i]<max)
max=c[i];
--i;
--n;
}
}
b[0][0]=1;
b[1][0]=0;
for(i=1;i<=n;++i)
{
for(j=w-1;j>=0;--j)
if(b[0][v[i]+j]==0 && b[0][j]==1)
{
b[0][v[i]+j]=1;
b[1][v[i]+j]=b[1][j]+c[i];
}
else
if(b[1][v[i]+j]<b[1][j]+c[i] && b[0][j]==1)
b[1][v[i]+j]=b[1][j]+c[i];
}
for(i=w;i<=15010;++i)
if(b[1][i]<max && b[0][i]==1)
max=b[1][i];
if(max==4000000)
printf("-1");
else
printf("%d",max);
return 0;
}