Cod sursa(job #808874)
Utilizator | Dobre Bogdan Mihai dobrebogdan | Data | 7 noiembrie 2012 16:00:14 |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.43 kb |
#include<stdio.h>
int a[10000];
int g[5000];
int p[5000];
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
int n,ge,i,j,sol;
sol=0;
scanf("%d%d",&n,&ge);
for(i=1;i<=n;i++)
scanf("%d%d",&g[i],&p[i]);
a[0] = 0;
for(i=1;i<=n;++i)
for(j=ge-g[i];j>=0;--j)
{
if(a[j+g[i]]<a[j] + p[i] )
{
a[j+g[i]] =a[j] + p[i];
if(a[j+g[i]] > sol)
sol =a[j+g[i]];
}
}
printf("%d", sol);
return 0;
}