Pagini recente » Istoria paginii runda/wintership | Rating Odea Stefan (giovanni69) | Cod sursa (job #843724) | Cod sursa (job #1409561) | Cod sursa (job #1805377)
//problema rucsacului
#include <cstdio>
using namespace std;
int i, j, n,v[10005],frec[1000000],sum,aux,e,c,maxi;
int main() {
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d",&n);
scanf("%d",&sum);
maxi=1000000000;
for(i=1;i<=n;i++)
{
scanf("%d%d\n",&e,&c);
for(j=sum;j>=0;j--)
{
if(frec[j]!=0)
{
if(j+e<=sum)
{
if(frec[j+e]>frec[j]+c || frec[j+e]==0)
{
frec[j+e]=frec[j]+c;
}
}
else
{
if(maxi>frec[j]+c)
maxi=frec[j]+c;
}
}
}
if(e>=sum && maxi>c)
{
maxi=c;
}
if(frec[e]>c || frec[e]==0)
frec[e]=c;
}
for(i=1;i<=sum;i++)
{
//printf("%d ",frec[i]);
}
if(maxi!=100000000)
{
if(frec[sum] < maxi && frec[sum] != 0)
{
printf("%d\n",frec[sum]);
}
else
{
printf("%d\n",maxi);
}
}
else
{
maxi = -1;
printf("%d\n",maxi);
}
}