Pagini recente » Cod sursa (job #1912752) | Cod sursa (job #511867) | Cod sursa (job #1064792) | Cod sursa (job #26796) | Cod sursa (job #2130594)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("rucsac.in");
ofstream g ("rucsac.out");
int N, GMAX, S[10003], val[5003], gr[5003];
int main()
{
f >> N >> GMAX;
memset(S, -1, sizeof(S));
int MAX = 0;
S[MAX] = 0;
for(int i = 1; i <= N; i++) f >> gr[i] >> val[i];
for(int i = 1; i <= N; i++) {
for(int j = MAX; j >= 0; j--) {
if(S[j] != -1 && j + gr[i] <= GMAX && S[j] + val[i] > S[j + gr[i]])
S[j + gr[i]] = S[j] + val[i], MAX = max(MAX, j + gr[i]);
}
}
MAX = 0;
for(int i = 1; i <= GMAX; i++)
MAX = max(MAX, S[i]);
g << MAX << "\n";
f.close();
g.close();
return 0;
}