Cod sursa(job #1777493)

Utilizator gabor.vlad13lil pump gabor.vlad13 Data 12 octombrie 2016 16:09:57
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <cstdio>
#include <cstring>
#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;
}