Pagini recente » Monitorul de evaluare | Cod sursa (job #3367227) | Cod sursa (job #3366827) | Cod sursa (job #3367228) | Cod sursa (job #3364726)
#include <iostream>
#include <fstream>
#define VMAX 5001
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int n,maxim,p[VMAX],g[VMAX],dp[10001];
int main()
{
fin>>n>>maxim;
for (int i=1;i<=n;i++)
fin>>g[i]>>p[i];
for (int i=1;i<=n;i++)
for (int j=maxim-g[i];j>=0;j--)
if (dp[j+g[i]]<dp[j]+p[i])
dp[j+g[i]]=dp[j]+p[i];
int MAX=-1;
for (int i=1;i<=maxim;i++)
MAX=max(MAX, dp[i]);
fout<<MAX;
return 0;
}