Cod sursa(job #2569623)

Utilizator Tudor_IIliescu Andrei-Tudor Tudor_I Data 4 martie 2020 12:54:51
Problema Problema rucsacului Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int n,g,wt[10001],v[10001];
int knapsack(int n, int g, int wt[], int v[])
{   int k[n+1][g+1];
    for(int i=0;i<=n;i++)
    {   for(int w=0;w<=g;w++)
        {   if(w==0||i==0) k[i][w]=0;
            else if(wt[i-1]<=w)
                    k[i][w]=max(v[i-1]+k[i-1][w-wt[i-1]],k[i-1][w]);
                 else
                    k[i][w]=k[i-1][w];
        }
    }
    return k[n][g];
}
int main()
{
    fin>>n>>g;
    for(int i=0;i<n;i++) fin>>wt[i]>>v[i];
    fout<<knapsack(n,g,wt,v);
    return 0;
}