Pagini recente » Cod sursa (job #3191883) | Cod sursa (job #256917) | Cod sursa (job #391949) | Cod sursa (job #2839295) | Cod sursa (job #2689934)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
const int NMAX = 10000;
#define ll long long
ll dp[NMAX+5];
int main()
{
int n;
fin>>n;
ll g, a, b;
fin>>g;
for(int i = 1; i <= g; i++)
dp[i] = -1;
ll j = 0;
for(int i = 1; i <=n;i++)
{
fin>>a>>b;
for(ll k = j; k >= 0; k--)
{
if(dp[k] == -1)
continue;
if(k + a <= g)
{
dp[k + a] = max(dp[k + a], dp[k] + b);
j = max(j, k + a);
}
}
}
ll sol = 0;
for(int i =0;i <=g; i++)
sol = max(sol, dp[i]);
fout<<sol<<"\n";
return 0;
}