Pagini recente » Cod sursa (job #268904) | Cod sursa (job #2259194) | Cod sursa (job #2496862) | Cod sursa (job #447902) | Cod sursa (job #2771110)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("rucsac.in");
ofstream out ("rucsac.out");
const int NMAX = 5001;
const int GMAX = 10001;
int greutate[NMAX],profit[NMAX],n,G;
int dp[GMAX];
int main()
{
in>>n>>G;
for(int i=1;i<=n;i++)
in>>greutate[i]>>profit[i];
int maxim=-1;
for(int i=1;i<=n;i++)
{
for(int j=G;j>=greutate[i];j--)
{
if(dp[j-greutate[i]]+profit[i]>dp[j])
{
dp[j]=dp[j-greutate[i]]+profit[i];
maxim=max(maxim,dp[j]);
}
}
}
out<<maxim;
return 0;
}