Cod sursa(job #695332)
Utilizator | Data | 28 februarie 2012 11:56:59 | |
---|---|---|---|
Problema | Ghiozdan | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.45 kb |
#include<stdio.h>
long b[6000], c[6000];
long a[11000];
long sol,n,g,i,j;
int main() {
freopen("rucsac.in", "r", stdin);
freopen("rucsac.out", "w", stdout);
int n, g;
scanf("%ld %ld",&n,&g);
for (i=1; i<=n; ++i) {
scanf("%ld %ld", &b[i], &c[i]);
}
a[0]=0;
for(i=1; i<=n; i++)
for(j=g-b[i]; j>=0; j--) {
if(a[j+b[i]]<a[j]+c[i])
{
a[j+b[i]]=a[j]+c[i];
if(a[j+b[i]]> sol) sol = a[j+b[i]];
}
}
printf("%ld", sol);
return 0;
}