Cod sursa(job #2875830)

Utilizator AndreeeeiAndrei-Ioan Andreeeei Data 22 martie 2022 13:27:17
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
#include <algorithm>

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

struct pii
{

    int x, y;

};

pii v[10000];
int dp1[10005], dp2[10005];

int main()
{
    int n, G;

    in >> n >> G;

    for(int i = 1; i <= n; i ++)
        in >> v[i].x >> v[i].y;

    for(int i = 1; i <= n; i ++)
    {
        for(int g = 1; g <= G; g ++)
        {
            dp1[g] = dp2[g];

            if(v[i].x <= g)
                dp1[g] = max(dp1[g], dp2[g - v[i].x] + v[i].y);
        }

        for(int j = 1; j <= G; j ++)
        {
            dp2[j] = dp1[j];
        }
    }
    out << dp1[G];

    return 0;
}