Pagini recente » Cod sursa (job #461425) | Cod sursa (job #3227554) | Cod sursa (job #2541938) | Cod sursa (job #2563794) | Cod sursa (job #947353)
Cod sursa(job #947353)
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
struct gen {
long e;
long c;
}v[1001];
long s[1001][5001];
long n,i,w,j,sol=2000000000;
int main () {
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%ld%ld",&n,&w);
for(i=1;i<=n;i++)
scanf("%ld%ld",&v[i].e,&v[i].c);
for(i=0;i<=n;i++)
for(j=0;j<w;j++)
s[i][j]=1000000000;
s[0][0]=0;
for(i=1;i<=n;i++)
{
for(j=0;j<w;j++)
{
if(j+v[i].e>=w)
{
if(s[i-1][j]+v[i].c<sol)
sol=s[i-1][j]+v[i].c;
}
if(j>=v[i].e)
s[i][j]=min(s[i-1][j],s[i-1][j-v[i].e]+v[i].c);
else
s[i][j]=s[i-1][j];
}
}
if(sol>=1000000000)
sol=-1;
printf("%ld\n",sol);
return 0;
}