Pagini recente » Cod sursa (job #2678663) | Cod sursa (job #867270) | Cod sursa (job #1781080) | Cod sursa (job #590441) | Cod sursa (job #2496902)
#include <algorithm>
#include <stack>
#include <queue>
#include <deque>
#include <vector>
#include <string>
#include <set>
#include <map>
#include <cstring>
using namespace std;
//#include <iostream>
#include <fstream>
//ifstream cin ("input.in");
//ofstream cout ("output.out");
ifstream cin ("rucsac.in");
ofstream cout ("rucsac.out");
static const int NMAX = 5e3+5;
static const int GMAX = 1e4+5;
int dp[GMAX];
pair <int, int> object[NMAX];
int main() {
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int n, g;
cin>>n>>g;
for ( int i = 1; i <= n; ++i ) {
cin>>object[i].first>>object[i].second;
}
for ( int i = 1; i <= n; ++i ) {
for ( int j = g-object[i].first; j >= 0; --j ) {
dp[j+object[i].first] = max(dp[j+object[i].first], dp[j]+object[i].second);
}
}
int ans = 0;
for ( int i = 0; i <= g; ++i ) {
ans = max(ans, dp[i]);
}
cout<<ans<<'\n';
}