Pagini recente » Cod sursa (job #2973403) | Cod sursa (job #1423896) | Cod sursa (job #155472) | Cod sursa (job #1915529) | Cod sursa (job #2154071)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream out("rucsac.out");
int n, g, dp[100005], t;
struct ob{
int greutate;
int suma;
}a[5005];
void dinamica()
{
for (int i=1; i<=n; i++)
{
for (int j=g-a[i].greutate; j>=0; --j)
{
if (dp[j+a[i].greutate]<dp[j]+a[i].suma)
{
dp[j+a[i].greutate]=dp[j]+a[i].suma;
if (dp[j+a[i].greutate]>t)
t=dp[j+a[i].greutate];
}
}
}
}
int main()
{
f>> n >> g;
for (int i=1; i<=n; i++)
{
f >> a[i].greutate >> a[i].suma;
}
dinamica();
out << t;
return 0;
}