Cod sursa(job #2044579)

Utilizator DdariusDarius Ddarius Data 21 octombrie 2017 11:08:52
Problema Problema rucsacului Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("rucsac.in");
ofstream g("rucsac.out");

int a, n, i, j, dp[3][1005], pr[5000], gr[5000], l, lf;

int main()
{
    ///dp[i][j]=max(dp[i-1][j], dp[i-1][j-gr[i]]+pr[i]) - 50p
    ///100p- Folosesc 2 linii
    ///
    f>>n>>a;
    for(i=1; i<=n; i++)
    {
        f>>gr[i]>>pr[i];
    }
    for(i=1; i<=n; i++)
    {
        for(j=1; j<=a; j++)
        {
            l=i%2;
            lf=1-l;
            dp[l][j]=dp[lf][j];
            if(gr[i]<=j)
                dp[l][j]=max(dp[lf][j], dp[lf][j-gr[i]]+pr[i]);
        }
    }
    g<<dp[n%2][a];
    return 0;
}