Cod sursa(job #3223090)

Utilizator velciu_ilincavelciu ilinca velciu_ilinca Data 12 aprilie 2024 13:34:20
Problema Problema rucsacului Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");

const int gmax = 10001;
const int nmax = 5001;
int dp[nmax],pr[nmax], gr[nmax];

int main()
{
    long long n,G;
    in>>n>>G;
    for(int i = 1; i <= n; i++)
        in>>gr[i]>>pr[i];
    for(int i = 1; i <= n ; i++)
    {
        for(int j = G; j >= 0; j--)
            if(dp[j] + pr[i] >= dp[j + gr[i]] && j + gr[i] <= G)
                dp[j + gr[i]] = dp[j] + pr[i];
    }
    int maxig = 0;
    for(int i = G; i >= 1; i--)
        maxig = max(maxig, dp[i]);
    out<<maxig;
    return 0;
}