Pagini recente » Cod sursa (job #3236029) | Cod sursa (job #1199758) | Cod sursa (job #2731678) | Cod sursa (job #1201012) | Cod sursa (job #2779107)
#include <bits/stdc++.h>
#define DimMax 5000
#define ValMax 10000
#define LinMax 2
using namespace std;
ifstream fin ( "rucsac.in" );
ofstream fout ( "rucsac.out" );
int n, G;
int w[DimMax + 1], p[DimMax + 1];
int dp[LinMax][ValMax + 1];
int l, ans;
int main()
{
fin >> n >> G;
for ( int i = 1; i <= n; i++ )
fin >> w[i] >> p[i];
for ( int i = 1; i <= n; i++,l = 1 - l )
for ( int j = 0; j <= G; j++ )
{
dp[l][j] = dp[1 - l][j];
if ( w[i] <= j )
dp[l][j] = max(dp[1 - l][j], dp[1 - l][j - w[i]] + p[i]);
ans = max(ans, dp[l][j]);
}
fout << ans;
return 0;
}