Cod sursa(job #1818558)

Utilizator RoxanaMogaMoga Roxana Gabriela RoxanaMoga Data 29 noiembrie 2016 13:46:38
Problema Problema rucsacului Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
#define nmax 10001
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
struct  obiect
{
    int g, cas;
};
obiect a[nmax];
int n,G,c[nmax][nmax];
void citire()
{
    int i;
    fin>>n>>G ;
    for(i=1;i<=n;++i){fin>>a[i].g;
                      fin>>a[i].cas;
    }
}
void dinamica()
{
    int i,j;
    for(i=0;i<=G;++i)c[0][i]=0;
    for(j=0;j<=n;++j)c[j][0]=0;
    for(i=1;i<=n;++i)
        for(j=1;j<=G;++j)
         if(a[i].g>j)c[i][j]=c[i-1][j];
    else c[i][j]=max(c[i-1][j],a[i].cas+c[i-1][j-a[i].g]);
    fout<<c[n][G];
}

int main()
{
    citire();
    dinamica();

    return 0;
}