Pagini recente » Cod sursa (job #236447) | Cod sursa (job #82724) | Cod sursa (job #2169081) | Cod sursa (job #2531854) | Cod sursa (job #2223652)
#include <cstdio>
using namespace std;
int i,j,g,w,l,d[10000000],ok,c[1005],e[1005];
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
ok=d[0]=l=0;
scanf("%d%d",&g,&w);
for(i=1;i<=g;i++)
{
scanf("%d%d",&e[i],&c[i]);
ok+=e[i];
}
if(ok<w)
{
printf("-1");
return 0;
}
for(i=1;i<=ok;i++)
d[i]=-1;
for(i=1;i<=g;i++)
for(j=l;j>=0;j--)
if(d[j]!=-1 && (d[j]+c[i]<d[j+e[i]] || d[j+e[i]]==-1))
{
d[j+e[i]]=d[j]+c[i];
if(j+e[i]>l)
l=j+e[i];
}
i=w;
while(d[i]==-1)
i++;
printf("%d",d[i]);
return 0;
//Pentru d - indicele = energia produsa ; valoarea = cost
}