Cod sursa(job #2868010)

Utilizator PalffyLehelPalffy Lehel PalffyLehel Data 10 martie 2022 18:07:39
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.08 kb
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    ifstream f("rucsac.in");
    ofstream g("rucsac.out");

    int n, suly;
    f >> n >> suly;

    int elottem[suly];
    fill_n(elottem, suly, 0);
    int megoldas[suly];
    fill_n(megoldas, suly, 0);
    int sulya, ara;

    for (int i = 0; i < n; i++)
    {
        f >> sulya >> ara;
        sulya--;

        if(sulya + 1 <= suly && ara > megoldas[sulya])
        {
            megoldas[sulya] = ara;
        }

        for (int j = 0; j < suly; j++)
        {
            if (elottem[j] == 0)
            {
                continue;
            }

            if (sulya + 1 + j < suly && ara + elottem[j] > megoldas[j + sulya + 1])
            {
                megoldas[j + sulya + 1] = elottem[j] + ara;
            }
        }

        copy(megoldas, megoldas + suly, elottem);
    }

    ara = 0;
    for (int i = 0; i < suly; i++)
    {
        if (ara < megoldas[i])
        {
            ara = megoldas[i];
        }
    }

    g << ara;

    return 0;
}