Cod sursa(job #1887759)

Utilizator remus88Neatu Remus Mihai remus88 Data 21 februarie 2017 19:10:48
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>

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

int n,G,gr[5050],pr[5050],d[3][10050];

int main()
{
    f>>n>>G;
    for (int i=1; i<=n; ++i) f>>gr[i]>>pr[i];
    int l=2;
    for (int i=1; i<=n; ++i)
    {
        for (int j=1; j<=G; ++j)
        {
            // nu il sutesc pe i
            d[l][j]=d[3-l][j];
            // il sutesc pe i daca pot, si daca se merita
            if (gr[i]<=j) d[l][j]=max(d[l][j],d[3-l][j-gr[i]]+pr[i]);
        }
        l=3-l;
    }
    g<<d[3-l][G]<<'\n';
    f.close();
    g.close();
    return 0;
}