Cod sursa(job #1128714)

Utilizator stefanlaculeanuLaculeanu Stefan stefanlaculeanu Data 27 februarie 2014 18:23:31
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
int main()
{
    int n , g , s=0 ,j, i , p[5005] , gr[5005] , profit[10005];
    in>>n;
    in>>g;
    for(i=0;i<n;i++)
    {
        in>>gr[i];
        in>>p[i];
    }
    for(i=0;i<=g;i++)
    {
        profit[i]=-1;
    }
    profit[0]=0;
    for(i=0;i<=n;i++)
    {
        for(j=g-gr[i];j>=0;j--)
        {
            if((profit[j]!=-1) && (profit[j]+p[i]>profit[j+gr[i]]))
                profit[j+gr[i]]=profit[j]+p[i];

        }
    }
    int max;
    max=profit[0];
    for(i=0;i<=g;i++)
    {
        if(profit[i]>max)
        max=profit[i];
    }
    out<<max;
    in.close();
    out.close();
    return 0;
}