Cod sursa(job #932755)

Utilizator AnduuFMI Alexandru Banu Anduu Data 29 martie 2013 11:02:51
Problema Problema rucsacului Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
using namespace std;
int n, g, p[5005], w[5005], i;
void citire ()
{
    ifstream in ("rucsac.in");
    in >> n >> g;
    for (i = 1; i <= n; ++i)
    in >> w[i] >> p[i];
    in.close ();
}
long long solve ()
{
    int j, optim[10000];
    long long s = 0;
    for (i = 1; i <= n; ++i)
    for (j = g - w[i]; j >= 0; --j)
    if (optim[j+w[i]] < optim[j] + p[i])
    {
        optim[j+w[i]] = optim[j] + p[i];
        if (optim[j + w[i]] > s)
        s = optim[j + w[i]];
    }
    return s;
}
void afis (int sol)
{
    ofstream out ("rucsac.out");
    out << sol << '\n';
    out.close ();
}
int main()
{
    citire ();
    afis (solve ());
    return 0;
}