Pagini recente » Istoria paginii runda/pentru_o_bere | Istoria paginii utilizator/nenu2008 | Istoria paginii utilizator/mxrcurie | Monitorul de evaluare | Cod sursa (job #859097)
Cod sursa(job #859097)
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
#define LMAX 5000
int N,G;
int s[LMAX];
vector<int> u[LMAX];
void citire() {
scanf("%d %d", &N, &G);
}
void util(int l, int e, int g) {
int f = l-g;
u[l].assign(u[f].begin(), u[f].end());
u[l].push_back(e);
}
void rucsac() {
int g,v;
for (int e=1; e<=N; ++e) {
scanf("%d %d", &g, &v);
for (int i=G; i>=0; --i)
if (i-g>=0) {
if (s[i-g] + v > s[i]) {
s[i] = s[i-g] + v;
//util(i,e,g);
}
}
}
int max=s[G];
for (int i=G-1; i>=0; --i)
if (s[i]>max) max = s[i];
printf("%d", max);
}
int main () {
freopen("rucsac.in","rt",stdin);
freopen("rucsac.out","wt",stdout);
citire();
rucsac();
return 0;
}