Pagini recente » Cod sursa (job #1657275) | Cod sursa (job #863767) | Cod sursa (job #2090346) | Cod sursa (job #2647323)
#include <fstream>
int main()
{
std::ifstream f("rucsac.in");
int n, GMAX;
f>>n>>GMAX;
int dp[2][GMAX+1],c[n+1],g[n+1];
for(int i=1;i<=n;i++)
f>>g[i]>>c[i];
f.close();
for(int i=0;i<=GMAX;i++)
dp[1][i]=0;
dp[0][0]=0;
dp[1][0]=0;
int l=0;
for(int i=1;i<=n;i++,l=1-l)
for(int j=1;j<=GMAX;j++)
{
dp[l][j]=dp[1-l][j];
if(j-g[i]>=0)
{
int aux=c[i]+dp[1-l][j-g[i]];
if(aux>dp[l][j])
dp[l][j]=aux;
}
}
std::ofstream h("rucsac.out");
h<<dp[1-l][GMAX];
return 0;
}