Mai intai trebuie sa te autentifici.

Cod sursa(job #859097)

Utilizator gallexdAlex Gabor gallexd 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;
}