Cod sursa(job #3149720)

Utilizator AdrianRosuRosu Adrian Andrei AdrianRosu Data 11 septembrie 2023 16:19:41
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <bits/stdc++.h>
#define DIM 50001

using namespace std;

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

struct elem{

    int weight, profit;

};

elem v[DIM];

int curr[DIM], last[DIM];

int n, i, j, G;


int32_t main(void){

    fin >> n >> G;

    for(i=1;i<=n;i++)
        fin >> v[i].weight >> v[i].profit;

    for(i=1;i<=n;i++){
        for(j=0;j<=G;j++){
            curr[j] = last[j];

            if(v[i].weight <= j)
                curr[j] = max(curr[j], last[j - v[i].weight] + v[i].profit);

        }

        for(j=0;j<=G;j++)
            last[j] = curr[j];

    }


    fout << curr[G];

}