Cod sursa(job #2390410)

Utilizator lazari.dDana Vik lazari.d Data 28 martie 2019 00:29:38
Problema Problema rucsacului Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.58 kb
#include <bits/stdc++.h>
using namespace std;
int const NM = 10007;
int dp [NM];
#define cin fin
#define cout fout
ifstream fin ("rucsac.in");
ofstream fout ("rucsac.out");
int main()
{
    int n , i , g , a , b , from = 0 , j;
    cin >> n >> g;
    for(i = 1 ; i <= n ; ++ i)
    {
        cin >> a >> b;
        for(j = from ; j > 0 ; -- j)
            if (dp [j])
                dp [a + j] = max (dp [a + j] , dp [j] + b);
        dp [a] = max (b , dp [a]);
        from = min (from + a , g);
    }
    cout << *max_element (dp + 1 , dp + g + 1);
    return 0;
}