Cod sursa(job #2119671)

Utilizator Bogdan_BuzatuBuzatu Bogdan Mihai Bogdan_Buzatu Data 1 februarie 2018 15:15:30
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>
using namespace std;

ifstream fin("rucsac.in");
ofstream fout("rucsac.out");

int d[110000],g[5010],c[5010],n,i,G,maxim=-20000,j;
int main(){
    fin>>n>>G;
    for(i=1;i<=n;i++){
        fin>>g[i]>>c[i];

   }
    for(i=1;i<=G;i++){
        d[i]=-20000;
    }
    d[0]=0;
    for(i=1;i<=n;i++){
        for(j=G;j>=0;j--){
            if(d[j]>=0 && j+g[i]<=G &&d[j+g[i]]<d[j]+c[i]){
                d[j+g[i]]=d[j]+c[i];
            }
        }

    }
    for(i=G;i>=0;i--){
        if(d[i]>maxim){
            maxim=d[i];
        }
    }
    fout<<maxim;

    return 0;
}