Cod sursa(job #1590210)

Utilizator Vali_DeaconuVali Deaconu Vali_Deaconu Data 4 februarie 2016 19:41:06
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include<cstdio>
using namespace std;
#define MAXW 10010
#define max(a,b) ((a > b) ? a : b)
int n, g, w, p;
int Cmax[MAXW];

int main() {
    if (freopen("rucsac.in", "r", stdin)) ;
    if (freopen("rucsac.out", "w", stdout)) ;

    if (scanf ("%d %d", &n, &g)) ;

    for (int i=1; i<=n; ++i) {
        if (scanf ("%d %d", &w, &p)) ;

        for (int j=g; j>=0; --j)
            Cmax[j] = ((w<=j) ? ( max(Cmax[j], Cmax[j-w]+p) ) : Cmax[j]);
    }

    printf("%d\n", Cmax[g]);
    fclose(stdin);
    fclose(stdout);
    return 0;
}