Pagini recente » Cod sursa (job #1198965) | Cod sursa (job #581756) | Cod sursa (job #885897) | Cod sursa (job #1095848) | Cod sursa (job #1657099)
#include <fstream>
using namespace std;
void solve(int,int,int,int);
int n,gmax,G[10005],P[10005],a[3][10005];
int main(){
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
scanf("%d%d",&n,&gmax);
for (int i=1;i<=n;i++){
scanf("%d%d",&G[i],&P[i]);
}
for (int i=1;i<=n;i++){
solve(G[i],P[i],i%2,i);
}
printf("%d",a[n%2][gmax]);
}
void solve(int g,int p,int l,int i){
int l1=1-l;
for (int j=g;j<=gmax;j++){
if (j-g>=0){
a[l][j]=max(a[l1][j],a[l1][j-g]+p);
}
else {
a[l][j]=a[l1][j];
}
}
}