Pagini recente » Cod sursa (job #2159261) | Cod sursa (job #3039641) | Cod sursa (job #1406517) | Cod sursa (job #1613058) | Cod sursa (job #1452419)
#include <stdio.h>
#include <algorithm>
using namespace std;
int main(){
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
int N,G,i,cw,t;
int v[2][10005];
int greutate[10005], profit[10005];
scanf("%d %d ", &N, &G);
for(i=1; i<=N; i++)
scanf("%d %d ", &greutate[i], &profit[i]);
for(i=0; i<greutate[1]; i++)
v[0][i] = 0;
for(i=greutate[1]; i<=G; i++)
v[0][i] = profit[1];
t=0;
for(i=2; i<=G; i++){
t=1-t;
for(cw=1; cw<=G; cw++){
v[t][cw] = v[1-t][cw];
if(greutate[i] <= cw)
v[t][cw] = max(v[t][cw], v[1-t][cw-greutate[i]] + profit[i]);
}
}
printf("%d",v[1][G]);
return 0;
}
//0 0 7 7 7 7 7 7 7 7
//0 0 7 7 7 11 11 11 11 11