Cod sursa(job #1831774)

Utilizator catu_bogdan_99Catu Bogdan catu_bogdan_99 Data 18 decembrie 2016 18:32:25
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <cstdio>
#include <iostream>
using namespace std;

#define NMAX 10001

int D[ NMAX ];


int main () {

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

    int N, M, G, i, j, g, v, ma;
    ma = -1;

    scanf( "%d%d",&N,&G );
    for ( i = 1; i <= N; ++i ) {
        scanf( "%d%d",&g,&v );
        for ( j = G - g; j >= 1; --j )
            if ( D[ j ] )
                D[ j + g ] = max( D[ j + g ], D[ j ] + v );
        D[ g ] = max( D[ g ], v );
    }

    for ( i = 1; i <= G; ++i )
        ma = max( ma, D[ i ] );

    printf("%d",ma);

    return 0;

}