Cod sursa(job #1093751)

Utilizator nicnic28nichita trita nicnic28 Data 28 ianuarie 2014 16:01:22
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
#include <iostream>
#include <cstring>
using namespace std;
fstream in("rucsac.in",ios::in),out("rucsac.out",ios::out);
//pr[j]= pr max pe care il pot avea cu greutatea j

const int N=5001;

int p[N],g[N],k,n,pr[10001];

int main()
{
    in>>n>>k;
    for(int i=1 ; i<=n ; i++){
        in>>g[i]>>p[i];
    }
    memset(pr , -1 , sizeof(pr));
    pr[0]=0;

    int i,j;
    for(i=1 ; i<=n ; i++){
        for(j=k-g[i] ; j>=0 ; j--){
            if(pr[j]!=-1 && pr[j]+p[i]>pr[j+g[i]])
                pr[j+g[i]]=pr[j]+p[i];
        }
    }
    int max=pr[1];
    for(i=2 ; i<=k ; i++)
        if(pr[i]>max)
            max=pr[i];
    out<<max;
    return 0;
}