Cod sursa(job #1669964)

Utilizator andreinmAndrei andreinm Data 31 martie 2016 12:15:40
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <cstdio>
using namespace std;

inline int max(int a, int b)
{
    if (a > b)
        return a;
    return b;
}

const int SIZE = 10005;
int n, G, w, p, ans, i;
int D[SIZE];

int main()
{
    freopen("input.in", "r", stdin);
    freopen("output.out", "w", stdout);

    scanf("%d %d", &n, &G);
    for ( ; n; --n) {
        scanf("%d %d", &w, &p);

        for (i = G - w; i >= 0; --i)
            D[i+w] = max(D[i+w], D[i] + p);
    }

    for (i = 0; i <= G; ++i)
        ans = max(ans, D[i]);

    printf("%d\n", ans);

    return 0;
}