Pagini recente » Cod sursa (job #2591057) | Cod sursa (job #1694013) | Cod sursa (job #2400032) | Cod sursa (job #2826775) | Cod sursa (job #1842184)
#include <iostream>
#include <cstdio>
#define inf 50000050
using namespace std;
struct energii
{
int e,c;
};
energii v[1005];
int eng[1000050];
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
int n,m,i,j,cmax=0,engmax=0,mini=inf;
scanf("%d%d",&n,&m);
for(i=1; i<=n; i++)
{
scanf("%d%d",&v[i].e,&v[i].c);
cmax+=v[i].c;
engmax+=v[i].e;
}
if(engmax<m)
printf("-1");
else
{
for(i=1; i<=n; i++)
{
for(j=cmax; j>=v[i].c; j--)
{
if( eng[j]<eng[j-v[i].c]+v[i].e)
{
eng[j]=eng[j-v[i].c]+v[i].e;
if(eng[j]>=m)
cmax=j;
}
}
}
printf("%d",cmax);
}
return 0;
}