Pagini recente » Cod sursa (job #1192252) | Cod sursa (job #2235989) | Atasamentele paginii Profil nelsonmondialu | Cod sursa (job #1015504) | Cod sursa (job #3336762)
#include <fstream>
#include <climits>
#include <algorithm>
#include <cstring>
using namespace std;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
//declaring outside main for zeros
int d[10001];
int main()
{
/// declaring
int n,i,j,p[5001],g[5001],G,maxtotal=INT_MIN;
////reading
cin >> n>> G;
for (i=1;i<=n;i++){
cin >> g[i]>>p[i];
}
// algorithm
d[0]=1;
for (i=0;i<=n;i++){
for (j=G;j>=0;j--){
if (d[j]!=0&&j+g[i]<=G){
d[j+g[i]]=max(d[j+g[i]],d[j]+p[i]);
if (d[j+g[i]]>maxtotal)
maxtotal=d[j+g[i]];
}
}
}
//outputting
cout << maxtotal-1;
//test
}