Cod sursa(job #1818529)

Utilizator ovidiumOvidiu Mariciuc ovidium Data 29 noiembrie 2016 13:33:31
Problema Problema rucsacului Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
#define nmax 10001

using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int N,G;
struct obiect
{
    int wi,pi;
};
obiect a[nmax];
int c[nmax][nmax];
void Citire()
{
    int i;
    fin>>N>>G;
    for(i=1;i<=N;i++)
        fin>>a[i].wi>>a[i].pi;

}
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].wi>j) c[i][j]=c[i-1][j];
            else c[i][j]=max(c[i-1][j],a[i].pi+c[i-1][j-a[i].wi]);
    fout<<c[N][G];
}
int main()
{
    Citire();
    Dinamica();
    fin.close();
    fout.close();
    return 0;
}