Cod sursa(job #2652300)

Utilizator Casian_doispeChiriac Casian Casian_doispe Data 24 septembrie 2020 18:12:11
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
#include <deque>
#include <vector>
#include <bitset>
#include <queue>
#include <unordered_set>
#include <algorithm>
#include <cmath>

using namespace std ;

ifstream cin ("rucsac.in") ;
ofstream cout ("rucsac.out") ;

int m[3][10009] ;

int main()
{

    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int n, k, mx = 0 ;

    cin >> n >> k ;

    for(int f = 1 ; f <= n ; f ++)
    {

        int g, val ;

        cin >> g >> val ;

        for(int e = 0 ; e <= k ; e ++)
        {

            if(e >= g)m[f % 2][e] = max({m[(f + 1) % 2][e], m[(f + 1) % 2][e - g] + val, m[f % 2][e - 1]}) ;
                else m[f % 2][e] = max({m[(f + 1) % 2][e], m[f % 2][e - 1]}) ;

            mx = max(m[f % 2][e], mx) ;

        }

    }

    cout << mx ;

    return 0 ;
}