Cod sursa(job #2886849)

Utilizator David0911David Teregovan David0911 Data 8 aprilie 2022 14:27:37
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb

#include <bits/stdc++.h>

using namespace std;

ifstream fin("energii.in");
ofstream fout("energii.out");
int n, gmax, x, pr = 0;
int p[5005],g[5005],profit[10005] = {-1};
int maxim = 0;

/*
profit[j] -> profitul maxim pe care il putem obtine cu obiecte ce au suma greutatilor j
{1}
{1}
for(int i = 1 ; i <= n; i++)
{
    for(int j =  gmax - g[i]; j >= 0; j++)
    {
        profit[j + g[i]] = max(profit[j + g[i]],  profit[j] + pret[i])
    }
}
{1}
*/
int main()
{
    fin >> n >> gmax;
    for(int i = 1; i <= n; i++)
    {
        fin >> g[i] >> p[i];
    }
    profit[0] = 0;
    for(int i = 1 ; i <= n; i++)
    {
        for(int j =  gmax - g[i]; j >= 0; j--)
        {
            profit[j + g[i]] = max(profit[j + g[i]],  profit[j] + p[i]);
        }
    }
    for(int i = 1; i <= gmax; i++)
    {
        maxim = max(profit[i],maxim);
    }
    fout << maxim;
    return 0;
}