Pagini recente » Cod sursa (job #2287626) | Cod sursa (job #417398) | Cod sursa (job #149162) | Cod sursa (job #1638330) | Cod sursa (job #2342864)
#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++)
if(j-a[i].w>=0)
dp[l][j]=max(dp[1-l][j], dp[1-l][j-a[i].w]+a[i].p);
l=1-l;
}
g << dp[1-l][G] << '\n';
return 0;
}