Cod sursa(job #2096997)

Utilizator NToniBoSSNicolae Tonitza NToniBoSS Data 30 decembrie 2017 11:56:04
Problema Problema rucsacului Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.63 kb
#include <stdio.h>
#include <stdlib.h>
int s[10001],r[10001];
int main()
{
    int n,g,i,w,p,j,max;
    freopen("rucsac.in","r",stdin);
    freopen("rucsac.out","w",stdout);
    scanf("%d%d",&n,&g);
    r[0]=1;
    for(i=1; i<=n; i++)
    {
        scanf("%d%d",&w,&p);
        for(j=g-w; j>=0; j--)
            if(r[j]==1)
                if(r[j+w]==0)
                    s[j+w]=s[j]+p,r[j+w]=1;
                else
                    if(s[j+w]<s[j]+p)
                        s[j+w]=s[j]+p;
    }
    max=0;
    for(i=g; i>=0; i--)
        if(s[i]>max)
            max=s[i];
    printf("%d\n",max);

    return 0;
}