Cod sursa(job #3289660)

Utilizator Octa476Osnaga Octavian Alexandru Octa476 Data 27 martie 2025 20:00:30
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>
using namespace std;

int main() {
    ifstream fin("rucsac.in");
    int N, G;
    fin >> N >> G;
    vector<pair<int, int>> objects(N);

    for (int i = 0; i < N; i++) {
        fin >> objects[i].first;
        fin >> objects[i].second;
    }
    fin.close();

    vector<int> targets(G + 1, 0);

    for (int i = 0; i < N; i++) {
        for (int j = G; j >= 0; j--) {
            if (j - objects[i].first >= 0)
                targets[j] = max(targets[j], objects[i].second + targets[j - objects[i].first]);
        }
    }

    int maximum = 0;

    for (int i = 0; i <= G; i++)
        maximum = max(maximum, targets[i]);
    ofstream fout("rucsac.out");
    fout << maximum;
    fout.close();

    return 0;

}