Pagini recente » Cod sursa (job #912531) | Cod sursa (job #1809322) | Cod sursa (job #3186408) | Cod sursa (job #1463705) | Cod sursa (job #1446542)
#include <fstream>
#define inf (1 << 30)
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
long long n, g, maxim = -inf, i, j;
long long o[10001];
int gr[5001], cst[5001];
int main()
{
fin >> n >> g;
for (i = 1; i <= n; i++)
fin >> gr[i] >> cst[i];
for (i = 1; i <= n; i++)
for (j = g-gr[i]; j >= 0; j--)
if (o[j+gr[i]] < o[j] + cst[i])
{
o[j+gr[i]] = o[j] + cst[i];
if (maxim < o[j+gr[i]])
maxim = o[j+gr[i]];
}
if (maxim >= inf)
fout << -1;
else
fout << maxim;
return 0;
}