Pagini recente » Cod sursa (job #2405590) | Cod sursa (job #2293112) | Cod sursa (job #2825205) | Cod sursa (job #2454922) | Cod sursa (job #826264)
Cod sursa(job #826264)
#include<stdio.h>
int d[5][5000010],g[1010],w[1010];
inline int max (int a, int b)
{
if(a>b) return a;
return b;
}
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
int i,n,j,G,la,lc,sum;
scanf("%d%d",&n,&G);
sum=0;
for(i=1;i<=n;i++)
{
scanf("%d%d",&g[i],&w[i]);
sum+=w[i];
}
for(i=1;i<=n;i++)
for(j=1;j<=sum;j++)
{
la=(i+1)%2;
lc=i%2;
if(g[i]>j)
d[lc][j]=d[la][j];
if(g[i]<=j)
d[lc][j]=max(d[la][j],d[la][j-g[i]]+w[i]);
}
printf("%d\n",d[lc][G]);
return 0;
}