Cod sursa(job #1625177)

Utilizator gabor.vlad13lil pump gabor.vlad13 Data 2 martie 2016 17:16:16
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>

using namespace std;

int n, g, maxim;
int vec[10005];

void Solve()
{
    int i, elem;
    scanf("%d %d\n", &n, &g);
    for (int k=1; k<=n; k++)
    {
        scanf("%d %d", &i, &elem);
        for (int j=g-i; j>=0; j--)
            if ((vec[j] > 0 || j == 0) && (vec[j+i] < vec[j] + elem))
                vec[j+i] = vec[j] + elem;
    }

    for (int i=1; i<=g; i++)
        if (vec[i] > maxim)
            maxim = vec[i];

    printf("%d", maxim);
}

int main()
{
    freopen("rucsac.in", "r", stdin);
    freopen("rucsac.out", "w", stdout);
    Solve();
    return 0;
}