Cod sursa(job #1978230)

Utilizator CriistinaMicula Cristina Criistina Data 7 mai 2017 10:29:56
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <fstream>
#define Nmax 5001
#define Gmax 10001

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

int n, G, w[Nmax], p[Nmax],sol, pr[Gmax][Nmax],l;

int main()
{
    f>>n>>G;
    for(int i=1;i<=n;i++)
    {
        f>>w[i]>>p[i];
    }
    for(int i=1;i<=n;i++)
    {
        for(int k=w[i];k<=G;k++)
        {
            pr[k-w[i]][i]=max(pr[k-w[i]][i-1], pr[k-w[i]][i]);
            pr[k][i]=max(pr[k-w[i]][i-1], pr[k-w[i]][i-1]+p[i]);
            sol=max(sol, pr[k][i]);
            sol=max(sol, pr[k-w[i]][i]);
        }
    }
    for(int k=0;k<=G;k++)
    {
        for(int i=1;i<=n;i++)
            cout<<pr[k][i]<<" ";
        cout<<endl;
    }
    g<<sol;
}