Cod sursa(job #1213726)

Utilizator buzandanBuzan Dan Alexandru buzandan Data 28 iulie 2014 21:34:08
Problema Problema rucsacului Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
using namespace std;

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

#define MXN 5001
#define MXG 5001

int max(int a,int b)
{
    if(a > b)
        return a;
    else return b;
}
int n,g;
int w[MXN] , p[MXN];
long v[MXG];

int rucsac(int a , int b)
{
    int i,j;
    for(int i = 1; i <= n; i++)
        for(int j = b; j >= w[i]; j--)
            v[j] = max(v[j] , v[j - w[i]] + p[i]);
    return v[g];
}
int main()
{
    int i;
    fin >> n >> g;
    for(int i= 1; i <= n; i++)
        fin >> w[i] >> p[i];
    fout << rucsac(n,g);
    fin.close();
    fout.close();
    return 0;
}