Pagini recente » Cod sursa (job #1907664) | Istoria paginii utilizator/mrmihnea | Monitorul de evaluare | Diferente pentru lot-2017 intre reviziile 7 si 14 | Cod sursa (job #1657100)
#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=0;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];
}
}
}