Cod sursa(job #2342873)

Utilizator razvanradulescuRadulescu Razvan razvanradulescu Data 13 februarie 2019 14:40:22
Problema Problema rucsacului Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <cstdio>
using namespace std;

int dinamic[5005], G, n, maxim = 0;
int W[5005], P[5005];

void rez()
{
    scanf("%d %d", &n, &G);
    for(int i = 1; i<=n; i++)
    {
        scanf("%d %d", &W[i], &P[i]);
    }
    for(int i = 1; i<=n; i++)
    {
        for(int j = G-W[i]; j>=0; j--)
        {
            if(dinamic[j+W[i]] < dinamic[j] + P[i])
            {
                dinamic[j+W[i]] = dinamic[j] + P[i];
                if(dinamic[j+W[i]] > maxim)
                {
                    maxim = dinamic[j+W[i]];
                }
            }
        }
    }
    printf("%d", maxim);
}

int main()
{
    freopen("rucsac.in", "r", stdin);
    freopen("rucsac.out", "w", stdout);
    rez();
    return 0;
}