Cod sursa(job #3162455)

Utilizator AlexanderCernyCernaianu Alexandru AlexanderCerny Data 29 octombrie 2023 12:03:47
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream>

using namespace std;

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

int dp[100001];
int n,G,g,p,i,j;
int main()
{
    fin>>n>>G;
    for(i=1;i<=10000;i++)
        dp[i]=-1;
    for(i=1;i<=n;i++)
    {
        fin>>g>>p;
        for(j=G-g;j>=0;j--) ///j=greutatea obtinuta anterior
            if(dp[j]!=-1 && dp[j+g]<dp[j]+p)
                dp[j+g]=dp[j]+p;
    }
    ///determin maximul din dp
    int maxim=-1;
    for(i=1;i<=10000;i++)
        if(dp[i]>maxim)
            maxim=dp[i];
    fout<<maxim;
    return 0;
}