Pagini recente » Cod sursa (job #2911168) | Cod sursa (job #755610) | Cod sursa (job #552173) | Cod sursa (job #2651045) | Cod sursa (job #2342881)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
struct rucsac{
int w, p;
}a[5005];
int n, G;
int dp[3][10005];
void print()
{
for (int i = 0; i <= n; i++)
{
for (int j = 1; j <= G; j++)
cout << dp[i][j] << " ";
cout << '\n';
}
cout << '\n';
}
int main()
{
f >> n >> G;
for (int i = 1; i <= n; i++)
f >> a[i].w >> a[i].p;
int l = 0;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= G; j++)
{
dp[l][j]=dp[1-l][j];
if(j-a[i].w>=0)
dp[1-l][j]=max(dp[l][j], dp[l][j-a[i].w]+a[i].p);
}
}
g << dp[1-l][G] << '\n';
return 0;
}