Cod sursa(job #2306071)

Utilizator BotzkiBotzki Botzki Data 21 decembrie 2018 16:30:53
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
//DINAMICA UTILIZAND O MATRICE cu 2 linii, deoarece altfel nu intra in memorie
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
const int NMAX= 10000;
int dp[2][NMAX+5];
//dp[i][j]-profitul maxim pe care il poti obtine alegand i produse si a caror greutate este j
//dp[i][j]=max(dp[i][j], dp[i][j-g]+p)
int main()
{
    int n, k, i, j, g, p;
    fin>>k>>n;
    for(i=1;i<=k;i++)
    {
        fin>>g>>p;
        for(j=1;j<=n;j++)
        {
            if(j-g>=0)
                dp[i%2][j]=max(dp[(i-1)%2][j], dp[(i-1)%2][j-g]+p);
        }
    }
    fout<<dp[k%2][n]<<"\n";
    return 0;
}