Cod sursa(job #767134)

Utilizator bratualexBratu Alexandru bratualex Data 12 iulie 2012 20:26:02
Problema Problema rucsacului Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>

using namespace std;
ifstream fin ("rucsac.in");
ofstream fout ("rucsac.out");
int max(int ,int );
int a[5000],b[5000];
int v[5000][10000];
int main()
{
    int n,g,i,j;
    fin>>n>>g;


    for(i=1;i<=n;i++)
    {
        fin>>a[i]>>b[i];
        //gmax=gmax+a[i].greutate;
        //fout<<a[i].greutate<<" "<<a[i].profit<<"\n";
    }
    for (i=0;i<g;i++)
    {
        v[0][i]=0;
    }
    for(i=1;i<=n;i++)
    {
        for(j=0;j<=g;j++)
        {
            if(j>=a[i])
                v[i][j]=max(v[i-1][j],v[i-1][j-a[i]]+b[i]);
            else
                v[i][j]=v[i-1][j];

        }
    }
    fout<<v[i-1][g];



    return 0;
}
int max (int a , int b )
{
    if (a>=b)
        return a;
    return b;
}