Pagini recente » Cod sursa (job #1058025) | Cod sursa (job #788534) | Cod sursa (job #2726223) | Cod sursa (job #978933) | Cod sursa (job #1310728)
#include <stdio.h>
int n,w;
struct str
{
int e;
int g;
}it[1001];
int a[1001][5001];
int max(int a,int b)
{
if(a<b) return b;
return a;
}
int main()
{
freopen ("energii.in","r",stdin);
freopen ("energii.out","w",stdout);
scanf("%d%d",&n,&w);
int val=0;
for(int i=1;i<=n;i++)
{
scanf("%d%d",&it[i].e,&it[i].g);
if(val<it[i].g) val=it[i].g;
}
for(int i=1;i<=n;i++)
{
for(int j=it[i].g;j<=val;j++)
{
a[i][j]=max(a[i-1][j],a[i-1][j-it[i].g]+it[i].e);
}
}
bool as=0;
for(int i=1;i<=val;i++)
{
for(int j=1;j<=n;j++)
{
if(a[j][i]>=w)
{
printf("%d\n",i);
as=1;
break;
}
}
if(as==1) break;
}
return 0;
}