Cod sursa(job #3127053)

Utilizator speedy_gonzalesDuca Ovidiu speedy_gonzales Data 7 mai 2023 10:45:06
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include <vector>
#include <map>
#include <cstring>
#include <fstream>
#include <sstream>
#include <string>
#include <algorithm>
#include <queue>
#include <cmath>
#include <set>
#include <unordered_map>
#include <stack>
#include <iomanip>
#include <random>

using namespace std;

ifstream fin("rucsac.in");
ofstream fout("rucsac.out");

int n, maxWeight;

const int GMAX = 10010;

int maxProfit[GMAX], prevMaxProfit[GMAX];

int main() {
    fin >> n >> maxWeight;

    for (int i = 0; i < n; ++i) {
        int weight, profit;

        fin >> weight >> profit;
        for (int j = weight; j <= maxWeight; ++j) {
            maxProfit[j] = max(prevMaxProfit[j], prevMaxProfit[j - weight] + profit);
        }

        for (int k = 0; k <= maxWeight; ++k) {
            prevMaxProfit[k] = maxProfit[k];
        }
    }

    fout << maxProfit[maxWeight];

    return 0;
}