Cod sursa(job #1794151)

Utilizator papinub2Papa Valentin papinub2 Data 31 octombrie 2016 23:26:00
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
#include <algorithm>
using namespace std;

ifstream in("rucsac.in");
ofstream out("rucsac.out");

int p[5001], g[10001], d[2][10001], n, k;

void read()
{
    in>>n>>k;
    for (int i=1; i<=n; i++)
        in>>g[i]>>p[i];
}

void solve()
{
    int l=0;

    for (int i=1; i<=n; i++, l=1-l) /// l e linia de dinainte si 1-l cea curenta
    {
        for (int j=0; j<=k; j++)
        {
            d[1-l][j]=d[l][j];

            if (j>=g[i])
                d[1-l][j]=max(d[1-l][j], d[l][j-g[i]]+p[i]);

            //out<<d[1-l][j]<<' ';
        }
        //out<<'\n';
    }
    out<<d[l][k];

}

int main()
{
    read();
    solve();
    return 0;
}