Cod sursa(job #2852924)

Utilizator k2y201342asdfadfsafsd k2y20 Data 19 februarie 2022 18:18:19
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;

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

const int N=5005,G=1e4+5;
int dp[G],p[N],w[N];

void Afisare(int n)
{
    for(int i=1; i<=n; i++)
        cout<<dp[i]<<' ';
    cout<<'\n';

}

int main()
{
    int n,g;
    in>>n>>g;

    for(int i=1; i<=n; i++)
        in>>w[i]>>p[i];

    int wMAX=0,sol=0;
    for(int i=1; i<=n; i++)
    {
        for(int j=wMAX; j>=0; j--)
            if(j+w[i]<=g && dp[j]+p[i] > dp[j+w[i]])
            {
                if(j+w[i]>wMAX) wMAX=j+w[i];
                dp[j+w[i]]=dp[j]+p[i];
                if(dp[j+w[i]] > sol) sol = dp[j+w[i]];
            }
        //Afisare(g);
    }

    out<<sol;
    return 0;
}