Pagini recente » Cod sursa (job #203183) | Cod sursa (job #1249391) | Cod sursa (job #2610998) | Cod sursa (job #393621) | Cod sursa (job #2802855)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int n, gm;
int g[5005], v[5005];
int dp[2][10005];
int main()
{
fin>>n>>gm;
for(int i=1; i<=n; i++)
fin>>g[i]>>v[i];
int lin=1;
for(int i=1; i<=n; i++)
{
lin = (lin+1)%2;
for(int j=0; j<=gm; j++)
{
dp[lin][j] = dp[(lin+1)%2][j];
if(j >= g[i])
dp[lin][j] = max(dp[(lin+1)%2][j-g[i]] + v[i], dp[lin][j]);
}
}
int maxim = dp[lin][0];
for(int i=1; i<=gm; i++)
maxim = max(maxim, dp[lin][i]);
fout<<maxim;
return 0;
}