Cod sursa(job #2800927)

Utilizator DMR6476Erdic Dragos DMR6476 Data 14 noiembrie 2021 14:25:59
Problema Problema rucsacului Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include<fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int dp[2][10005];
int main()
{
    int n,maxWeight,currentWeight,currentPrice;
    fin>>n>>maxWeight;
    int line=0;
    for(int i=0; i<n; i++)
    {
        fin>>currentWeight>>currentPrice;
        for(int j=0; j<=maxWeight; j++)
        {
            if(dp[line][j]>dp[1-line][j])
                dp[1-line][j]=dp[line][j];
            if(dp[line][j]+currentPrice > dp[1-line][currentWeight+j] && j+currentWeight<=maxWeight)
                dp[1-line][currentWeight+j]=dp[line][j]+currentPrice;
        }

        line=1-line;
    }
    fout<<max(dp[line][maxWeight],dp[1-line][maxWeight]);

    return 0;
}