Cod sursa(job #3313875)

Utilizator mariagorganMaria Gorgan mariagorgan Data 7 octombrie 2025 10:07:52
Problema Problema rucsacului Scor 25
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.59 kb
#include <fstream>

using namespace std;

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

int maxp[5001][10001], i, j, n, G, nr=-1;

struct ura{
    int p,g;
}v[5001];

int dp (int k, int g)
{
    if(k==n) return 0;
    if(maxp[k][g]==-1)
    {
        maxp[k][g]=dp(k+1,g);
        if(g+v[k].g<=G)
            maxp[k][g]=max(maxp[k][g], dp(k+1, g+v[k].g)+v[k].p);
    }
    return maxp[k][g];
}

int main() {
    cin>>n>>G;
    for(i=0;i<n;i++)
        cin>>v[i].g>>v[i].p;
    for(i=0;i<=n;i++)
    for(j=0;j<=10000;j++)
            maxp[i][j]=-1;
        cout<<dp(0,0);
    return 0;
}