Pagini recente » Cod sursa (job #2948238) | Cod sursa (job #2853008) | Cod sursa (job #3145566) | Cod sursa (job #2796740) | Cod sursa (job #343213)
Cod sursa(job #343213)
#include <stdio.h>
#define MAXN 10000
#define MAXG 1001
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
int nrg,minc,best[MAXN],i,j,c[MAXG],e[MAXG],min = 99999999;
for (i=0;i<MAXN;i++)
{
best[i] = -1;
}
scanf("%d%d",&nrg,&minc);
for (i=1;i<=nrg;i++)
{
scanf("%d%d",&e[i],&c[i]);
}
best[0] = 0;
for (i=1;i<=nrg;i++)
{
for (j=minc;j>=0;j--)
{
if (best[j] !=-1)
{
if (j+c[i]>minc)
{
if (best[j]+e[i]>=minc)
{
if (min>j+c[i])
{
min = j+c[i];
}
}
}
else
{
if (best[j]+e[i]>best[j+c[i]])
{
best[j+c[i]] = best[j] + e[i];
}
}
}
}
}
for (i=1;i<=minc;i++)
{
if (best[i] >= minc)
{
min = i;
break;
}
}
if (min == 99999999)
{
printf("-1");
}
else
{
printf("%d",min);
}
return 0;
}