Pagini recente » Cod sursa (job #2720740) | Cod sursa (job #292956) | Cod sursa (job #1823740) | Cod sursa (job #2060946) | Cod sursa (job #3291346)
#include <bits/stdc++.h>
#define inf 2000000000
using namespace std;
int dp[10001]; //pentru fiecare indice i, salvam profitul maxim pentru un rucsac cu greutatea i
int main()
{
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
int n, g_max;
cin >> n >> g_max;
for(int i=1; i<=g_max; i++)
dp[i]=-inf;
for(int i=0; i<n; i++)
{
int greutate, profit;
cin >> greutate >> profit;
for(int j=g_max; j>=greutate; j--)
{
dp[j]=max(dp[j], dp[j-greutate]+profit);
}
}
int p_max=0; //profitul maxim
for(int i=0; i<=g_max; i++)
{
p_max=max(p_max, dp[i]); //calculam maximul dintre profitul pentru fiecare rucsac
}
cout << p_max;
return 0;
}