Cod sursa(job #2828565)

Utilizator David_IonitaIonita David Maximilian David_Ionita Data 7 ianuarie 2022 16:34:53
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int n,gmax,i,j,m,a[10001],b[10001],v[10001],g[10001],mx,k;
int main()
{
    fin>>n>>gmax;
    for (i=1;i<=n;i++)
    {
        fin>>g[i]>>v[i];
    }
    for (i=1;i<=n;i++)
        a[i]=-1;
    for (i=1;i<=n;i++)
    {
        for (j=1;j<=gmax;j++)
        {
            if (j-g[i]>=0 && a[j-g[i]]!=-1)
                {
                    b[j]=max(b[j],a[j-g[i]]+v[i]);
                }
            b[j]=max(b[j],a[j]);
        }
        for (k=1;k<=gmax;k++)
            a[k]=b[k];
    }
    mx=0;
    for (i=0;i<=gmax;i++)
        if (b[i]>mx) mx=b[i];
    fout<<mx;
    return 0;
}