Pagini recente » Cod sursa (job #1121589) | Cod sursa (job #993831) | Cod sursa (job #994928) | Cod sursa (job #2376979) | Cod sursa (job #3243564)
#include <bits/stdc++.h>
#define VMAX 100
#define NMAX 5000
#define LOG 19
#define INF (long long)(10e9)
#define MOD 1000000007
#define ll long long int
#define NIL 0
#define CMAX 1000000
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int dp[2][2*NMAX+1];
int p[NMAX+1],w[NMAX+1],g;
int n;
int main()
{
fin >> n >> g;
for(int i=1;i<=n;i++)
{
fin >> w[i] >> p[i];
}
for(int i=1;i<=n;i++)
{
int curr=i%2;
for(int j=0;j<=g;j++)
{
dp[curr][j] = dp[!curr][j];
if(w[i]<=j)
{
dp[curr][j] = max(dp[curr][j],dp[!curr][j-w[i]]+p[i]);
}
}
}
int res=0;
for(int i=1;i<=g;i++)
{
res=max(res,dp[n%2][i]);
}
fout << res;
}