Cod sursa(job #1120061)

Utilizator Juve45UAIC Alexandru Ionita Juve45 Data 24 februarie 2014 21:21:34
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <cstdio>
#include <algorithm>
#define dmax 5001
#define gmax 10001
using namespace std;
int w[dmax], p[dmax], gf[gmax], n, g;
void read()
{
    freopen("rucsac.in", "r", stdin);
    freopen("rucsac.out", "w", stdout);
    scanf("%i %i", &n, &g);
    for(int i=1;i<=n;i++) scanf("%i %i", &w[i], &p[i]);
}
void solve()
{
    for(int i=1;i<=n;i++)
        for(int j=g-w[i];j>=0;j--)
            if(gf[j+w[i]]<gf[j]+p[i])
            gf[j+w[i]]=gf[j]+p[i];
}

int main()
{
    read();
    solve();
    printf("%i \n", *max_element(gf+1, gf+g+1));
    return 0;
}