Cod sursa(job #2154071)

Utilizator victorv88Veltan Victor victorv88 Data 6 martie 2018 18:05:44
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n, g, dp[100005], t;
struct ob{
    int greutate;
    int suma;
}a[5005];

void dinamica()
{
    for (int i=1; i<=n; i++)
    {
        for (int j=g-a[i].greutate; j>=0; --j)
        {
            if (dp[j+a[i].greutate]<dp[j]+a[i].suma)
            {
                dp[j+a[i].greutate]=dp[j]+a[i].suma;
                if (dp[j+a[i].greutate]>t)
                    t=dp[j+a[i].greutate];
            }
        }
    }
}

int main()
{
    f>> n >> g;
    for (int i=1; i<=n; i++)
    {
        f >> a[i].greutate >> a[i].suma;
    }
    dinamica();
    out << t;
    return 0;
}