Cod sursa(job #1738156)

Utilizator FredyLup Lucia Fredy Data 5 august 2016 20:48:12
Problema Problema rucsacului Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>

using namespace std;

#ifdef INFOARENA
#define cout fout
#endif // INFOARENA

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

#define limg 10001
#define limn 5001
int N,G,a[limn][limg];
int gr[limn],p[limn];

int maxim(int a, int b)
{
    if(a>b)
        return a;
    return b;
}

int main()
{
    int i,j;
    fin>>N>>G;

    for(i=1; i<=N; i++)
        fin>>gr[i]>>p[i];

    for(i=1; i<=N; i++)
        for(j=0; j<=G; j++)
        {
             if(gr[i]<=j)
                a[i][j]=maxim( a[i-1][j] , a[i-1][j-gr[i]]+p[i] );
             else
                a[i][j]=a[i-1][j];

        }

    fout<<a[N][G];


    return 0;
}