Cod sursa(job #1768103)

Utilizator din99danyMatei Daniel din99dany Data 30 septembrie 2016 10:48:49
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <cstdio>
using namespace std;

#define VMAX 10005
#define INFI 0x3f3f3f3f

int exista_suma[ VMAX ];



int main(){

    freopen("rucsac.in","r",stdin);
    freopen("rucsac.out","w",stdout);

    int n, i, j, x, y, g, maxi;

    maxi = -INFI;

    scanf("%d%d",&n,&g);
    for ( i = 1; i <= n; ++i ) {
        scanf("%d%d",&x,&y);
        for ( j = g - x; j >= 0; j-- ) {
            if ( exista_suma[ j + x ] < exista_suma[ j ] + y ){
                exista_suma[ j + x ] = exista_suma[ j ] + y;
                if ( exista_suma[ j + x ] > maxi ) maxi = exista_suma[ j + x ];
            }
        }
    }

    printf("%d",maxi);

    return 0;

}