Cod sursa(job #2202801)

Utilizator PredaBossPreda Andrei PredaBoss Data 9 mai 2018 21:46:49
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>

using namespace std;
int n,g;
int profit[5005];
int greutate[5005];
int mx_profit[10005];
bitset<10005>ap;
int main()
{
    freopen("rucsac.in","r",stdin);
    freopen("rucsac.out","w",stdout);
    scanf("%d %d\n",&n,&g);
    for(int i=1;i<=n;i++)
        scanf("%d %d\n",&greutate[i],&profit[i]);
    ap[0]=1;
    for(int i=1;i<=n;i++)
    {
        for(int j=g;j>=greutate[i];j--)
        {
            if(ap[j-greutate[i]]==0)
                continue;
                ap[j]=1;
            mx_profit[j]=max(mx_profit[j],profit[i]+mx_profit[j-greutate[i]]);
        }
    }
    int mx=0;
    for(int i=1;i<=g;i++)
        if(mx<mx_profit[i])
        mx=mx_profit[i];
    printf("%d",mx);
    return 0;
}