Cod sursa(job #855732)

Utilizator ephgstefana gal ephg Data 15 ianuarie 2013 15:54:27
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include<cstdio>
#include<algorithm>
using namespace std;
#define BM 5005
#define GM 10005
#define mare -99999999
int n,c,mx;
int w[BM],p[BM];
int d[GM];
int main () {
    int i,j;
    freopen("rucsac.in","r",stdin);
    freopen("rucsac.out","w",stdout);
    scanf("%d %d",&n,&c);
    for(i=1;i<=n;++i)scanf("%d %d",&w[i],&p[i]);
    for(i=1;i<=GM-5;++i)d[i]=mare;
    for(i=1;i<=n;++i){
        for(j=GM-5;j>=0;--j){
            if(d[j]!=mare&&j+w[i]<=GM-5){
                d[j+w[i]]=max(d[j+w[i]],d[j]+p[i]);
            }
        }
    }
    for(i=1;i<=c;++i)mx=max(mx,d[i]);
    printf("%d",mx);
    return 0;
}