Cod sursa(job #3344091)

Utilizator andrei1232008nicolae andrei andrei1232008 Data 1 martie 2026 13:14:56
Problema Problema rucsacului Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.57 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
const int lim=1e4+10;
int n,g,i,w[lim],p[lim],dp[lim][lim],k,mx;
int main()
{
    fin>>n>>g;
    for(i=1;i<=n;i++)
    {
        fin>>w[i]>>p[i];
    }
    for(i=1;i<=n;i++)
        dp[w[i]][1]=max(dp[w[i]][1],p[i]);

    for(i=1;i<=n;i++)
    for(k=1;k<=g;k++)
    {
        if(k<w[i])dp[k][i]=dp[k][i-1];
        else dp[k][i]=max(dp[k][i-1],p[i]+dp[k-w[i]][i-1]);
    }
    for(i=1;i<=n;i++)
        mx=max(mx,dp[g][i]);
    fout<<mx;
    return 0;
}