Pagini recente » Cod sursa (job #1732830) | Cod sursa (job #1942963) | Istoria paginii runda/runda_de_verificare1 | Cod sursa (job #1135064) | Cod sursa (job #2689933)
#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);
}
}
}
fout<<dp[g]<<"\n";
return 0;
}