Cod sursa(job #1889134)

Utilizator NicusorTelescu Nicolae Nicusor Data 22 februarie 2017 16:36:32
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <cstdio>

using namespace std;

int v[10001],maxim,maxim1;

int main()
{
    freopen("rucsac.in","r",stdin);
    freopen("rucsac.out","w",stdout);
    int n,g;
    scanf("%d %d\n",&n,&g);
    for (int i=1;i<=n;++i)
    {
        int a,b;
        scanf("%d %d",&a,&b);

        for (int j=maxim;j>=0;--j)
            if (v[j] || !j)
                if (j+a<=g && v[j+a]<v[j]+b)
                {
                    v[j+a]=v[j]+b;
                    if (j+a>maxim) maxim=j+a;
                    if (v[j+a]>maxim1) maxim1=v[j+a];
                }
    }
    printf("%d",maxim1);
}