Pagini recente » Cod sursa (job #2605773) | Cod sursa (job #1221988) | Borderou de evaluare (job #3042783) | Cod sursa (job #786113) | Cod sursa (job #2763719)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream in("rucsac.in");
ofstream out("rucsac.out");
int n, g;
in>>n>>g;
int w[n], p[n], x[g+1];
for(int i=0; i<n; i++) in>>w[i]>>p[i];
for(int i=0; i<=g; i++) x[i]=0;
for (int i=1; i<=n; i++){
int wi=w[i-1];
int pi=p[i-1];
for(int cw=g; cw>=0; cw--)
if(wi<=cw)
x[cw]=max(x[cw], x[cw-wi]+pi);
}
int res=0;
for(int i=0; i<=g; i++) res=max(res, x[i]);
out<<res;
return 0;
}