Cod sursa(job #1120072)

Utilizator Juve45UAIC Alexandru Ionita Juve45 Data 24 februarie 2014 21:24:05
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <cstdio>
#include <algorithm>
#define dm 5001
#define gm 10001
using namespace std;
int w[dm], p[dm], gf[gm], 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;
}