Pagini recente » Cod sursa (job #1328086) | Cod sursa (job #1280811) | Cod sursa (job #2370923) | Cod sursa (job #3156390) | Cod sursa (job #343215)
Cod sursa(job #343215)
#include <stdio.h>
#define MAXN 10000
#define MAXG 1001
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
long long int nrg,minc,best[MAXN],i,j,c[MAXG],e[MAXG],min = 999999999;
for (i=0;i<MAXN;i++)
{
best[i] = -1;
}
scanf("%lld%lld",&nrg,&minc);
for (i=1;i<=nrg;i++)
{
scanf("%lld%lld",&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 == 999999999)
{
printf("-1");
}
else
{
printf("%lld",min);
}
return 0;
}