Cod sursa(job #1891541)
Utilizator | Data | 24 februarie 2017 09:38:06 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.55 kb |
#include <cstdio>
#include <algorithm>
using namespace std;
short n,g,i,j,l,gr[5001],pr[5001];
int a[2][10001];
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
scanf("%hd %hd\n",&n,&g);
for(i=1;i<=n;i++)
scanf("%hd %hd\n",&gr[i],&pr[i]);
l=0;
for(i=1;i<=n;i++,l=1-l)
for(j=0;j<=g;j++)
{
a[1-l][j]=a[l][j];
if(gr[i]<=j)
a[1-l][j]=max(a[1-l][j],a[l][j-gr[i]]+pr[i]);
}
printf("%d\n",a[l][g]);
return 0;
}