Cod sursa(job #2447829)

Utilizator pishcotMiruna Turbatu pishcot Data 14 august 2019 19:29:06
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("rucsac.in");
ofstream fout("rucsac.out");

int n, G;
int v[5005], g[5005];
int dp[2][10005];


int main()
{
    int l1 = 0, l2 = 1;
    fin >> n >> G;
    for(int i = 1; i <= n; i++)
        fin >> g[i] >> v[i];

    dp[l1][g[1]] = v[1];
    for(int i = 2; i <= n; i++)
       {

            for(int j = 1; j <= G; j++)
            {
                dp[l2][j] = dp[l1][j];
                if(j >= g[i])
                    dp[l2][j] = max(dp[l2][j],
                                    v[i] + dp[l1][j - g[i]]);
            }
            swap(l1,l2);
       }

    int sol = 0;
    for(int i = 1; i <= G; i++)
        sol = max(sol, dp[l1][i]);
    fout << sol;
    return 0;
}