Cod sursa(job #2108847)

Utilizator georgianamaximMaxim Georgiana georgianamaxim Data 18 ianuarie 2018 21:13:15
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <iostream>
#include <fstream>
#define DN 5001
#define DG 10001
using namespace std;

ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int n, g, p[DN], w[DN], we[DG], maxim=0;
int pr[DG];
int main()
{

    fin>>n>>g;
    for(int i=0; i<n; i++)
        fin>>w[i]>>p[i];
    pr[0]=0;
    we[0]=1;
    for(int i=0; i<n; i++)
        for(int j=g-w[i]; j>=0; j--)
            if(we[j]==1)
            {
                we[w[i]+j]=1;
                if(p[i]+pr[j]>pr[w[i]+j])
                    pr[w[i]+j]=p[i]+pr[j];
            }
    for(int i=0; i<=g; i++)
        if(pr[i]>maxim)
            maxim=pr[i];
    fout<<maxim;
    fin.close();
    fout.close();
    return 0;
}