Cod sursa(job #2373990)

Utilizator qwerty1234qwerty qwerty1234 Data 7 martie 2019 16:22:03
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb

#include <bits/stdc++.h>


using namespace std;

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

const short Gmax = 1e4 + 5;

int L1[Gmax], L2[Gmax], n, g[Gmax / 2], G, p[Gmax / 2];

int main()
{
    fin >> n >> G;
    for(int i = 1 ; i <= n ; i++)
        fin >> g[i] >> p[i];
    L1[g[1]] = p[1];
    for(int i = 2 ; i <= n ; i++)
    {
        for(int j = 1 ; j <= G ; j++)
        {
            L2[j] = L1[j];
            if(j >= g[i])
                L2[j] = max(L2[j], L1[j - g[i]] + p[i]);
        }
        for(int j = 1 ; j <= G ; j++)
            L1[j] = L2[j];
    }
    int ans = 0;
    for(int i = 0 ; i <= G ; i++)
        ans = max(ans , L1[i]);
    fout << ans << "\n";
    fin.close();
    fout.close();
}