Cod sursa(job #3002598)

Utilizator AndreiBOTOBotocan Andrei AndreiBOTO Data 14 martie 2023 21:54:48
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

ifstream fin ("rucsac.in");
ofstream fout ("rucsac.out");

const int NMAX=5e3+5;
const int MAXN=1e4+5;

int dp[MAXN];

struct elem{
    int g;
    int val;
}v[NMAX];

int main()
{
    int n,i,j,g,kon=0;
    fin>>n>>g;
    dp[0]=0;
    for(i=1;i<=n;i++)
        fin>>v[i].g>>v[i].val;
    for(i=1;i<=n;i++)
    {
        for(j=g;j>=0;j--)
        {
            if(v[i].g+j>g)
                continue;
            else
            {
                if(dp[j+v[i].g]<dp[j]+v[i].val)
                {
                    dp[j+v[i].g]=dp[j]+v[i].val;
                    kon=max(kon,dp[j]+v[i].val);
                }
            }
        }
    }
    fout<<kon;
    return 0;
}