Pagini recente » Cod sursa (job #2928260) | Cod sursa (job #2613548) | Cod sursa (job #2932811) | Cod sursa (job #1955565) | Cod sursa (job #2941934)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
#define ll long long
const int maxn = 5e3;
const int maxg = 1e4;
int dp[maxg + 10];
struct rucsac{
int w, p;
}a[maxn + 2];
int n, g;
void read(){
fin >> n >> g;
for(int i = 1; i <= n; ++i) fin >> a[i].w >> a[i].p;
for(int i = 1; i <= g; ++i)
dp[i] = -1;
}
void solve(){
for(int i = 1; i <= n; ++i){
for(int j = g - a[i].w; j >= 0; --j){
if(dp[j] != -1)
dp[j + a[i].w] = max(dp[j + a[i].w], dp[j] + a[i].p);
}
}
int ans = 0;
for(int i = 1; i <= g; ++i)
ans = max(ans, dp[i]);
fout << ans;
}
int main(){
read();
solve();
return 0;
}
/*
*/