Cod sursa(job #3341720)

Utilizator Cristian_NegoitaCristian Negoita Cristian_Negoita Data 20 februarie 2026 18:34:59
Problema Problema rucsacului Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.59 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
const int NMAX = 5001;
int n, G, weight[NMAX], profit[NMAX], dp[2][NMAX];

int main()
{
    fin >> n >> G;
    for(int i = 1; i <= n; i++)
        fin >> weight[i] >> profit[i];
    for(int i = 1; i <= n; i++)
    {
        for(int w = weight[i]; w <= G; w++)
            dp[1][w] = max(dp[1][w], dp[0][w - weight[i]] + profit[i]);
        memcpy(dp[0], dp[1], sizeof(dp[1]));
    }
    fout << *max_element(dp[0], dp[0] + NMAX);

    fin.close();
    fout.close();
    return 0;
}