Pagini recente » Cod sursa (job #2462112) | Cod sursa (job #3291935) | Cod sursa (job #49211) | Cod sursa (job #1698908)
#include <iostream>
#include <cstdio>
using namespace std;
int n,w,g=10005;
int p[1005],c[1005];
int sol[5005];
int main()
{
int i,j,mini=1000000,stot=0;
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d%d",&n,&w);
for(i=1;i<=n;i++)
{
scanf("%d%d",&p[i],&c[i]);
stot+=p[i];
}
if(stot<w)
{
printf("-1"); return 0;
}
for(i=1;i<=w;i++) sol[i]=0x7ffffff;
for(i=1;i<=n;i++)
{
for(j=w;j>0;j--)
{
if(j<p[i] && c[i]<sol[j]) sol[j]=c[i];
//if(i==2 && j==1) cout<<p[i]<<' '<<c[i]<<' '<<sol[j]<<'\n';
if(j>=p[i] && sol[j-p[i]]+c[i]<sol[j] ) sol[j]=sol[ j-p[i] ]+c[i];
}
//for(j=1;j<=w;j++) cout<<sol[j]<<' '; cout<<'\n';
}
printf("%d\n",sol[w]);
fclose(stdin);
fclose(stdout);
return 0;
}