Cod sursa(job #2866982)

Utilizator PalffyLehelPalffy Lehel PalffyLehel Data 10 martie 2022 09:36:04
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.03 kb
#include <iostream>
#include <fstream>

using namespace std;

int a = 2147483647;

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

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

    int sulyok[n];
    int arak[n];
    for (int i = 0; i < n; i++)
    {
        f >> sulyok[i] >> arak[i];
    }

    int maxi, index;
    int maximum = 0, jelenSuly = 0;
    for (int i = 0; i < n; i++)
    {
        if (jelenSuly + sulyok[i] <= suly)
        {
            jelenSuly += sulyok[i];
            maximum += arak[i];

            continue;
        }

        maxi = a; index = -1;
        for (int j = 0; j < i; j++)
        {
            if (maxi > arak[j] && jelenSuly + sulyok[i] - sulyok[j] <= suly)
            {
                maxi = arak[j]; index = j;
            }
        }

        if (index != -1)
        {
            jelenSuly = jelenSuly - sulyok[index] + sulyok[i];
            maximum = maximum - arak[index] + arak[i];
        }
    }

    g << maximum;

    return 0;
}