Cod sursa(job #2575800)

Utilizator marius004scarlat marius marius004 Data 6 martie 2020 15:30:00
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.59 kb
#include <fstream>

std::ifstream f("rucsac.in");
std::ofstream g("rucsac.out");

const int NMAX = 5005;
const int GMAX =  10005;

int n,wt[NMAX],pr[NMAX],d[GMAX],G;

int main(){
    
    f >> n >> G;
    
    for(int i = 1;i <= n;++i)
        f >> wt[i] >> pr[i];
    
    d[0] = 1;
    for(int i = 1;i <= n;++i){
        for(int j = G;j >= 0;--j)
            if(j - wt[i] >= 0 && d[j - wt[i]] != 0)
                d[j] = std::max(d[j],d[j - wt[i]] + pr[i]);
    }
    
    int sol = 0;
    
    for(int i = 1;i <= G;++i)
        sol = std::max(sol,d[i]);
    
    g << sol - 1;
    
    return 0;
}