Mai intai trebuie sa te autentifici.
Cod sursa(job #859097)
Utilizator | Data | 19 ianuarie 2013 17:56:28 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.89 kb |
#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;
}