Pagini recente » Cod sursa (job #1258831) | Cod sursa (job #1716048) | Cod sursa (job #1274819) | Cod sursa (job #21038) | Cod sursa (job #2165044)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int dp[2][10004],g[10005],p[10005],n,G;
int main()
{
int L1,L0,i,j;
fin>>n>>G;
for(i=1;i<=n;i++)
fin>>g[i]>>p[i];
dp[0][g[1]] = p[1];
L0 = 0; L1 = 1;
for (i = 2; i<= n; i++)
{
for (j = 1; j <= G; j++)
if (j < g[i]) dp[L1][j] = dp[L0][j];
else dp[L1][j] = max(dp[L0][j],p[i]+dp[L0][j-g[i]]);
swap(L0, L1);
}
int M=0;
for(i=1;i<=G;i++)
M=max(M,dp[L0][i]);
fout<<M;
return 0;
}